Package Raccolta Differenziata

Package Raccolta Differenziata

Aggiornamento 03/18/2019  22:30
    Modificato file lovelace versione yaml, raccolta.py v0.8, file package, immagine di sfondo lovelace


 

Molti di voi erano in attesa di questo package e finalmente è stato realizzato. Il codice è stato scritto da Mattia io invece ho realizzato la parte grafica e la programmazione in Lovelace.

Questo package ci permette di essere avvisati all’ora prestabilita (poi vedremo in quali modi) della raccolta che l’indomani verrà ritirata la differenziata, fino a qui nulla di diverso dagli altri package che girano nella rete. La differenza e il suo punto di forza è la programmazione settimanale, ogni 7 giorni e  bisettimanale ogni 14 giorni della raccolta. Infatti in molti comuni d’Italia alcuni rifiuti vengono raccolti ogni 14 giorni, a settimana alterna.
Vi ricordo che questo package è stato realizzato in Python quindi la procedura d’installazione sarà diversa dal solito.

Anche la parte grafica di Lovelace è stata realizzata in modo tale che possiate modificare i nomi e i colori dei singoli bidoni così per una maggiore personalizzazione.

 

INSTALLAZIONE COMPONENTI:
Iniziamo a scaricare il file zip Raccolta Differenziata contenente i seguenti file e cartelle:
www
python_scripts
packages
lovelace

Copiate direttamente le cartelle direttamente nella cartella /config di Home Assistant.
In www troverete le immagini per lovelace,
in inpyton_scripts il file py della differenziata
in lovelace le versioni sia per yaml che raw di lovelace

Come spiegato in precedenza dato che è stato realizzato in Python dovremmo dichiararlo in Home Assistant. Nel file configuration.yaml se non lo avete già, aggiungete la seguente riga:

poi creiamo una cartella in config con il nome python_script, li andremmo a copiare il file raccolta.py presente nel file .zip

Copiate ora il file pkg_differenziata_v0_5.yaml nella cartella packages, se ancora non l’avete configurata date un’occhiata alla guida Package Configurazione.
Ora è possibile riavviare Home Assistant.

 

PACKAGE:

Di seguito troverete il Package della raccolta differenziata bisettimanale.

 

LOVELACE:
Troverete all’interno della cartella lovelace due file per la configurazione di lovelace quella per versione yaml e quella per versione grafica raw.
Per coloro che usano la versione yaml possono includere direttamente il file aggiungendo le seguenti righe nel file ui-lovelace.yaml:

Per coloro che usano la versione grafica raw dovranno creare una card picture-elements e 2 card conditional e copiarci i relativi codici che ho opportunamente suddiviso

 

FUNZIONAMENTO:

Tramite i due menù a scomparsa potrete aprire le due card per la personalizzazione

 

Con il menù di sinistra si potranno personalizzare le seguenti cose:

  • ora di invio notifica,
  • titolo della notifica,
  • messaggio che precederà la differenziata che verrà raccolta,
  • il/i nome/i dei/del servizi/o di notifica, infatti è possibile separando con una virgola aggiungere più servizi di notifica (es.telegram, pushover, pushbullet, telegram_xx)
  • il messaggio vocale tts al vostro google home, specificate il nome del media_player. Lasciate vuoto se non volete nessuna notifica audio
  • il messaggio vocale tts ad alexa e/o echo dot, specificate il nome del media_player. Lasciate vuoto se non volete nessuna notifica audio
  • la sincronizzazione forzata (normalmente avviene tra le 24:00 e le 1:00,
  • un invio forzato della notifica

Dal menù di destra si potranno selezionare i giorni per la raccolta. I giorni ammessi sono: lun, mar, mer, gio, ven, sab e dom, sia in minuscolo che in maiuscolo è indifferente.
Invece il carattere che determina il salto della settimana è il meno “-“, gli spazi sono indifferenti sia tra i giorni della settimana che tra il salto di settimana.
Vediamo ora con alcuni esempi il funzionamento della sintassi per la determinazione dei giorni della raccolta.

  • Secco: lun            ogni lunedì di ogni settimana (4 volte al mese)
  • Umido: lun,gio      ogni lunedì e giovedì di ogni settimana (8 volte al mese)
  • Vetro: -mar          solo il martedì DISPARI della prima e della terza settimana del mese (2 volte al mese)
  • Plastica: --mar     solo il martedì PARI della seconda e della quarta settimana del mese (2 volte al mese)

Di default il package identifica come pari la prima settimana di Gennaio ma modificando il package è possibile invertire il pari con il dispari se lo ritenete opportuno.

 

PERSONALIZZAZIONE DI LOVELACE:

Di seguito analizziamo il codice Lovelace un pezzetto alla volta in modo tale da capire quale parte poter modificare per personalizzare la grafica. In questo package sono state utilizzate due diverse card la prima più complessa una Card picture-elements e due Card conditional per i settaggi.

Codice completo delle tre card per Lovelace Raw

 

Ora andiamo a vedere il codice e come poter personalizzare la picture-elements

In questa parte si realizza il titolo “Differenziata” su un rettangolo smussato di colore azzurro, in alto al centro.

 

Qui abbiamo il primo bidone associato all’entity raccolta_hp.secco. Dove potremmo modificare il colore agendo sotto la riga state_filter: su off travate opacity(0.0) cioè completamente trasparente in questo modo il bidone comparirà solo quando è attivo.
Mentre su on trovate questi parametri, su altri bidoni ne troverete alcuni in più rispetto al codice qui sopra:
hue-rotate(20deg): cambiando il valore si varierà la tonalità dell’immagine in questo modo si potrà cambiare colore all’intera immagine
brightness(1.5): luminosità un valore superiore a 1 aumenterà la luminosità dell’immagine, inferiore la renderà meno luminosa
grayscale(50%): toglieremo vivacità all’immagine portandola in bianco e nero con valore 0%

 

Si visualizzerà nel centro del bidone di colore nero i giorni della settimana di raccolta scelti con la card apposita di settaggio.
tap_actionhold_action impostate su none impediscono, se vengono premute con un click o con click prolungato, di aprire lo stato dell’input_select associato dato che non è di molta utilità impostarla da card

 

Con uno stratagemma, utilizzando l’entità creata con l’input_text.vuoto creeremo dei testi “label” per puro scopo descrittivo, infatti è legata ad una entità vuota che è stata dichiarata nel package e non ha nulla al suo interno solo uno spazio. A questa entità vuota andremmo ad aggiungerci in lovelace un prefisso con prefix:, questo fa si che verrà visualizzato solo il prefisso.

 

Infine sono state create 2 icone di colore verde posizionate a fianco al titolo che azionano un input_boolean per far funzionare le card condition infatti qualora l’input sia ad on la card viene visualizzata se off no. L’azione tab_action in questo caso chiama il servizio input_boolean.toggle sull’entità boolean.

 

In questa ultima parte di codice che fa riferimento alle due card conditional ci sono le impostazioni per i giorni di raccolta e le notifiche, non ci sono cose da personalizzare.

 

 


Vi lascio il link del forum dove potrete fare domande, richieste o commenti di ogni genere
https://forum.hassiohelp.eu/showthread.php?tid=223


Questo package è ancora in fase di integrazione se avete necessità anche della raccolta trimestrale o mensile non esitate a comunicarcelo, diteci anche in quale modo e con quale sintassi.

 

44 risposte

  1. Gabriele ha detto:

    Funziona tutto perfettamente, salvo che il menu delle notifiche, quello che compare cliccando l`icona in alto a destra si resetta ad ogni riavvio di Hassio, qualche soluzione, grazie.

  2. Gianluca ha detto:

    Molto interessante. È possibile averlo impostando giorni diversi per la differenziata e che si riceva una notifica la sera prima cosa si deve uscire?

    • Gianluca ha detto:

      Cioè, il lunedì mattina ritirano l’indifferenziata quindi la domenica sera ad un ora che stabilisco io mi invia una notifica oppure se è fattibile farlo dire ad alexa ma non è fondamentale. Ogni mercoledì ritirano la carta tranne il primo mercoledì del mese che ritirano il vetro ed ogni venerdì ritirano la plastica!

  3. Luca ha detto:

    Ciao,
    ho seguito la guida ed ho installato senza troppi problemi il package.
    L’unico limite che ho riscontrato riguarda al momento l’impossibilità di inserire dei giorni speciali o spostati per il ritiro. Per esempio dove abito io hanno anticipato il ritiro di secco e vetro perché altrimenti sarebbe capitato il 25 di aprile oppure hanno fatto due ritiri settimanali consecutivi di verde anziché a settimane alterne come usualmente previsto oltre al fatto che il verde non viene più ritirato durante il periodo invernale.
    Spero in future implementazioni perché la funzionalità di base è molto utile

  4. Manuel ha detto:

    Da me ritirano la carta ogni tre settimana.
    è possibile impostare questo tipo di raccolta?

  5. Ausonius ha detto:

    Ciao
    Volevo chiederti visto che dove mi trovo passano di sera si può modificare tipo che mi ricorda un ora prima che ritirano quel tipo di differenziata?

  6. Manuel ha detto:

    Ciao, le configurazioni per le card conditional e il picture elements non funzionano. Potete ricontrollare? grazie

  7. Paolo Masini ha detto:

    Ciao,
    alexa non funziona. Da quel che so il servizio tts è stato sostituito da notify.
    Come si può modificare?
    Grazie

  8. Alessandro ha detto:

    non mi vanno le notifiche. mi potete aiutare?

  9. Alessandro Bedendo ha detto:

    se la raccolta avviene una volta al mese come devo impostarla?
    è possibile impostare il promemoria il giorno prima rispetto il giorno del ritiro?

    • Caio Sweet ha detto:

      http://forum.hassiohelp.eu/showthread.php?pid=1033#pid1033

      Riguardo alla ritiro mensile e/o trisettimsnale…. L’autore ha concepito solo il ritiro settimanale e bisettimanale.
      Si potrebbero integrare facilmente, ma l’autore è non reperibile ?

      Attualmente sono impegnato in un altro progetto, se avrò tempo, cerco di fare qualcosa.

      • Alessandro Bedendo ha detto:

        ok, va bene. sarei interessato anche al fatto che l’avviso arrivi la sera del giorno prima del ritiro.
        Grazie mille

      • Alessandro ha detto:

        ci sono novità sul ritiro mensile?
        Inoltre sul menù di impostazione del giorno e orario della notifica le modifiche non vengono prese. Ad esempio ho scritto 17:20 al posto di 8:00 ma ad ogni riavvio viene fatto un reset

        • Enrico ha detto:

          Per il mensile nulla di nuovo.
          Per quanto riguarda le impostazioni perse ad ogni riavvio è normale se non inserisci i domini tipo input_number, automation ecc ecc sotto recorder queste verranno riportate allo stato in cui sono impostate da package.

          https://www.home-assistant.io/integrations/recorder/

          • Alessandro Bedendo ha detto:

            pertanto cosa devo scrivere sotto recorder:
            per fargli ricordare l’orario diverso e il messaggio?

          • Enrico ha detto:

            Sicuramente tutti gli imput, un esempio potrebbe essere
            recorder:
            purge_keep_days: 3
            include:
            domains:
            – automation
            – input_boolean
            – input_number
            – input_datetime
            – input_select
            – input_text

          • Arianna ha detto:

            io non ho ben capito cosa devo mettere in configurazione per salvare l’orario della notifica. Qualcuno c’è riuscito?

          • Enrico ha detto:

            Ciao o vai a modificare il package e modifichi l’orario iniziale

            input_datetime:
            orario_avviso_differenziata_hp:
            name: Orario avviso raccolta differenziata
            has_date: false
            has_time: true
            initial: “7:15”

            Altrimenti nel file configuration.yaml devi aggiungere al recorder gli input_datatime in questo modo

            recorder:
            input_datatime

        • Arianna ha detto:

          ok grazie.
          preferisco aggiungere il recored su file di configurazione.
          Comunque nell specifico bisogna inserire:
          recorder:
          include:
          domains:
          input_datatime
          in altri modi va in errore il file di configurazione.
          Ma comunque non salva il dato.

  10. turcato francesco ha detto:

    bellissimo pak , complimenti , utilissimo .
    Piccola domanda , vi funziona con Alexa? ho provato tutti i modi ma , forse a causa degli aggiornamenti massivi ultimi del plug-in , a me non va .. ho provato ad inserire tutti i nomi dei miei echo in tutti i formati possibili ma non mi riproduce il suono, telegram invece funziona benissimo

  11. TIZIANO ha detto:

    ciao il pacchetto non si po scaricare, il link da errore.

  12. Alessandro Bedendo ha detto:

    Potete implementare anche la raccolta mensile?
    Così poi sarebbe perfetto…
    Grazie mille

  13. Axurexia ha detto:

    Sto implementando la raccolta mensile. Scusate ma deingegnerizzare il codice attuale un po’ cervellotico non è stato semplicissimo. Purtroppo il python attuale si basa su un accrocchio per la lettura dei parametri non banale da capire (uno split con controllo del null)… Ho cambiato approccio. Ho mantenuto la logica dei parametri dei giorni per ogni settimana ovvero (lun,mer,sab…) e ho introdotto la logica ogni n (n max 4) settimane e quale settimana delle n per le scadenze bi/tri/quadri settimanali (2|1|mer -> mercoledì di ogni due settimane la prima delle due, 4|3|lun -> lunedì di ogni 4 settimane la terza delle quattro) usando come settimana 0 quella del 30/11/2020. Ora devo sostituire il codice con il mio dentro la funzione… quando ce la farò posterò il nuovo raccolta.py.

    • Axurexia ha detto:

      Ecco il nuovo raccolta.py. Vi ricordo che i parametri funzionano come prima sui giorni della settimana ovvero “lun” oppure “lun,mer,ven” ma da 2 a 4 settimane funzionano con il parametro “# settimane (1,2,3,4)|# quale settimana (1,2,3,4)|giorno” tipo “4|1|mer” oppure “3|2|lun” dalla settimana di riferimento , quella del 30/11/2020. In particolare settimane pari e dispari si indicano con “2|1|lun” o “2|2|lun”.

      “”” Raccolta differenziata V1.0.b1 by Mattia(xxKira)&Axurexia for HassioHelp
      For Question ask in forum.hassiohelp.eu or in Group Telegram “””

      “”” 4|3|lun -by Axurexia”””

      # Schema quadrisettimanale
      # 0 lun 0 7 14 21
      # 1 mar 1 8 15 22
      # 2 mer 2 9 16 23
      # 3 gio 3 10 17 24
      # 4 ven 4 11 18 25
      # 5 sab 5 12 19 26
      # 6 dom 6 13 20 27

      argomento = data.get(‘argomento’)
      servizio_notifica = data.get(‘servizio_notifica’)
      titolo_notifica = data.get(‘titolo_notifica’)
      messaggio_notifica = data.get(‘messaggio_notifica’)
      entity_google_tts = data.get(‘entity_google_tts’)
      entity_alexa_tts = data.get(‘entity_alexa_tts’)
      entity_script_tts = data.get(‘entity_script_tts’)

      get_day = hass.states.get(‘input_boolean.giorno_notifica_hp’).state
      get_verde = (hass.states.get(‘input_text.verde_hp’).state).lower().replace(‘ ‘, ”)
      get_umido = (hass.states.get(‘input_text.umido_hp’).state).lower().replace(‘ ‘, ”)
      get_vetro = (hass.states.get(‘input_text.vetro_hp’).state).lower().replace(‘ ‘, ”)
      get_plastica = (hass.states.get(‘input_text.plastica_hp’).state).lower().replace(‘ ‘, ”)
      get_secco = (hass.states.get(‘input_text.secco_hp’).state).lower().replace(‘ ‘, ”)
      get_carta = (hass.states.get(‘input_text.carta_hp’).state).lower().replace(‘ ‘, ”)

      attributi_input = {‘min’: 0, ‘max’: 255, ‘mode’: ‘text’, ‘Package:’: ‘Raccolta Differenziata’, ‘Creato da:’: ‘Mattia(xxKira)’, ‘Creato per:’: ‘HassioHelp’}

      for x in range(1, 7):
      hass.states.remove(‘raccolta_hp.bidone_’ + str(x) + ‘_hp’)
      hass.states.remove(‘raccolta_hp.nome_bidone_’ + str(x) + ‘_hp’)
      hass.states.remove(‘raccolta_hp.giorni_bidone_’ + str(x) + ‘_hp’)

      #se è nullo lo stato viene messo a ‘-‘ altrimenti splitta per ‘-‘ quindi un –mer diventa ”,”,’mer’
      if get_verde is None:
      hass.states.set(‘input_text.verde_hp’, ‘-‘, attributi_input )
      else:
      get_verde = get_verde.split(‘-‘)
      if get_umido is None:
      hass.states.set(‘input_text.umido_hp’, ‘-‘, attributi_input )
      else:
      get_umido = get_umido.split(‘-‘)
      if get_vetro is None:
      hass.states.set(‘input_text.vetro_hp’, ‘-‘, attributi_input )
      else:
      get_vetro = get_vetro.split(‘-‘)
      if get_plastica is None:
      hass.states.set(‘input_text.plastica_hp’, ‘-‘, attributi_input )
      else:
      get_plastica = get_plastica.split(‘-‘)
      if get_secco is None:
      hass.states.set(‘input_text.secco_hp’, ‘-‘, attributi_input )
      else:
      get_secco = get_secco.split(‘-‘)
      if get_carta is None:
      hass.states.set(‘input_text.carta_hp’, ‘-‘, attributi_input)
      else:
      get_carta = get_carta.split(‘-‘)

      days = {0:’lun’, 1:’mar’, 2:’mer’, 3:’gio’, 4:’ven’, 5:’sab’, 6:’dom’}
      data_oggi = datetime.datetime.now()
      #data_oggi = datetime.datetime(2021, 3, 20)
      data_riferimento = datetime.datetime(2020, 11, 30)
      oggi_n = (data_oggi – data_riferimento).days
      oggi_s = data_oggi.weekday()
      domani_n = oggi_n + 1
      domani_s = (oggi_n + 1) % 7
      oggi_s = days[oggi_s]
      domani_s = days[domani_s]

      def set_rifiuti(hass, day, day_n, get_vetro, get_verde, get_umido, get_plastica, get_secco, get_carta):
      global attributi_sensor
      attributi_sensor = {‘Package:’: ‘Raccolta Differenziata’, ‘Creato da:’: ‘Axurexia’, ‘Creato per:’: ‘HassioHelp’}

      global domani_ritirano
      domani_ritirano = []

      dayn = [‘lun’, ‘mar’, ‘mer’, ‘gio’, ‘ven’, ‘sab’, ‘dom’]

      #se viene messo a 0 è giorno di raccolta
      ris_vetro = 1
      ris_umido = 1
      ris_carta = 1
      ris_plastica = 1
      ris_secco = 1
      ris_verde = 1

      vetro = get_vetro[0]
      verde = get_verde[0]
      umido = get_umido[0]
      plastica = get_plastica[0]
      secco = get_secco[0]
      carta = get_carta[0]

      #VETRO
      vetro = vetro.split(“|”)
      if len(vetro) == 3 :
      day_calc = ((int(vetro[1]) – 1) * 7) + dayn.index(vetro[2])
      vetro = vetro[0]
      vetro = vetro.split(“,”)
      ris_vetro = (day_n – day_calc) % (int(vetro[0]) * 7)
      else:
      vetro = vetro[0]
      vetro = vetro.split(“,”)
      if vetro.count(day) == 1:
      ris_vetro = 0

      #UMIDO
      umido = umido.split(“|”)
      if len(umido) == 3 :
      day_calc = ((int(umido[1]) – 1) * 7) + dayn.index(umido[2])
      umido = umido[0]
      umido = umido.split(“,”)
      ris_umido = (day_n – day_calc) % (int(umido[0]) * 7)
      else:
      umido = umido[0]
      umido = umido.split(“,”)
      if umido.count(day) == 1:
      ris_umido = 0

      #CARTA
      carta = carta.split(“|”)
      if len(carta) == 3 :
      day_calc = ((int(carta[1]) – 1) * 7) + dayn.index(carta[2])
      carta = carta[0]
      carta = carta.split(“,”)
      ris_carta = (day_n – day_calc) % (int(carta[0]) * 7)
      else:
      carta = carta[0]
      carta = carta.split(“,”)
      if carta.count(day) == 1:
      ris_carta = 0

      #PLASTICA
      plastica = plastica.split(“|”)
      if len(plastica) == 3 :
      day_calc = ((int(plastica[1]) – 1) * 7) + dayn.index(plastica[2])
      plastica = plastica[0]
      plastica = plastica.split(“,”)
      ris_plastica = (day_n – day_calc) % (int(plastica[0]) * 7)
      else:
      plastica = plastica[0]
      plastica = plastica.split(“,”)
      if plastica.count(day) == 1:
      ris_plastica = 0

      #SECCO
      secco = secco.split(“|”)
      if len(secco) == 3 :
      day_calc = ((int(secco[1]) – 1) * 7) + dayn.index(secco[2])
      secco = secco[0]
      secco = secco.split(“,”)
      ris_secco = (day_n – day_calc) % (int(secco[0]) * 7)
      else:
      secco = secco[0]
      secco = secco.split(“,”)
      if secco.count(day) == 1:
      ris_secco = 0

      #VERDE
      verde = verde.split(“|”)
      if len(verde) == 3 :
      day_calc = ((int(verde[1]) – 1) * 7) + dayn.index(verde[2])
      verde = verde[0]
      verde = verde.split(“,”)
      ris_verde = (day_n – day_calc) % (int(verde[0]) * 7)
      else:
      verde = verde[0]
      verde = verde.split(“,”)
      if verde.count(day) == 1:
      ris_verde = 0

      if ris_vetro == 0:
      hass.states.set(‘raccolta_hp.vetro’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“vetro”]
      else:
      hass.states.set(‘raccolta_hp.vetro’, ‘off’, attributi_sensor)
      if ris_verde == 0:
      hass.states.set(‘raccolta_hp.verde’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“verde”]
      else:
      hass.states.set(‘raccolta_hp.verde’, ‘off’, attributi_sensor)
      if ris_plastica == 0:
      hass.states.set(‘raccolta_hp.plastica’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“plastica”]
      else:
      hass.states.set(‘raccolta_hp.plastica’, ‘off’, attributi_sensor)
      if ris_carta == 0:
      hass.states.set(‘raccolta_hp.carta’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“carta”]
      else:
      hass.states.set(‘raccolta_hp.carta’, ‘off’, attributi_sensor)
      if ris_umido == 0:
      hass.states.set(‘raccolta_hp.umido’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“umido”]
      else:
      hass.states.set(‘raccolta_hp.umido’, ‘off’, attributi_sensor)
      if ris_secco == 0:
      hass.states.set(‘raccolta_hp.secco’, ‘on’, attributi_sensor)
      domani_ritirano = domani_ritirano + [“secco”]
      else:
      hass.states.set(‘raccolta_hp.secco’, ‘off’, attributi_sensor)

      if get_day == ‘on’:
      hass.states.set(‘input_boolean.giorno_notifica_hp’, ‘on’, {‘friendly_name’: ‘Notifica Oggi’, ‘icon’: ‘mdi:update’, ‘Package:’: ‘Raccolta Differenziata’, ‘Creato da:’: ‘Mattia(xxKira)’, ‘Creato per:’: ‘HassioHelp’})
      set_rifiuti(hass, oggi_s, oggi_n, get_vetro, get_verde, get_umido, get_plastica, get_secco, get_carta)
      else:
      hass.states.set(‘input_boolean.giorno_notifica_hp’, ‘off’, {‘friendly_name’: ‘Notifica Giorno Prima’, ‘icon’: ‘mdi:update’, ‘Package:’: ‘Raccolta Differenziata’, ‘Creato da:’: ‘Mattia(xxKira)’, ‘Creato per:’: ‘HassioHelp’})
      set_rifiuti(hass, domani_s, domani_n, get_vetro, get_verde, get_umido, get_plastica, get_secco, get_carta)

      domani_ritirano = “, “.join(domani_ritirano)
      try:
      message = messaggio_notifica + ” ” + domani_ritirano
      messagetts = messaggio_notifica + “,” + domani_ritirano
      except:
      message = “Domani ritirano:” + domani_ritirano
      messagetts = “Domani ritirano:” + domani_ritirano
      title = titolo_notifica

      if argomento == ‘notifica’ and len(domani_ritirano) != 0:
      servizio_notifica = servizio_notifica.replace(‘ ‘, ”).split(‘,’)
      entity_google_tts = entity_google_tts.replace(‘ ‘, ”).split(‘,’)
      entity_alexa_tts = entity_alexa_tts.replace(‘ ‘, ”).split(‘,’)

      try:
      entity_script_tts = entity_script_tts.replace(‘ ‘, ”).split(‘,’)
      except:
      pass

      # try:
      # for entity_alexa in entity_alexa_tts:
      # hass.services.call(‘media_player’, ‘alexa_tts’, {‘entity_id’: ‘media_player.’ + entity_alexa, ‘message’: message}) #”message”:”test”, “data”:{“type”:”tts”},
      try:
      for entity_alexa in entity_alexa_tts:
      hass.services.call(‘notify’,’alexa_media’, {‘target’: entity_alexa, ‘data’: {‘type’:’tts’}, ‘title’: title, ‘message’: message})
      except:
      pass

      try:
      for entity_google in entity_google_tts:
      hass.services.call(‘tts’, ‘google_translate_say’, {‘entity_id’: ‘media_player.’ + entity_google, ‘message’: messagetts})
      except:
      pass

      try:
      for service in servizio_notifica:
      hass.services.call(‘notify’, service, {‘title’: title, ‘message’: message})
      except:
      pass

      try:
      for entity_script in entity_script_tts:
      hass.services.call(‘script’, entity_script, {‘title’: title, ‘message’: message})
      except:
      pass

      if len(domani_ritirano) != 0:
      i = 0
      try:
      bidoni_on = domani_ritirano.replace(‘ ‘,”).split(‘,’)
      except:
      bidoni_on = domani_ritirano

      for x in bidoni_on:
      i = i + 1
      y = (hass.states.get(‘input_text.’ + x + ‘_hp’).state).lower().replace(‘,’, ‘ ‘)
      hass.states.set(‘raccolta_hp.bidone_’ + str(i) + ‘_hp’, ‘on’, attributi_sensor)
      hass.states.set(‘raccolta_hp.nome_bidone_’ + str(i) + ‘_hp’, x, attributi_input)
      hass.states.set(‘raccolta_hp.giorni_bidone_’ + str(i) + ‘_hp’, y, attributi_input)
      #.capitalize()

  14. Chicco ha detto:

    Ciao,grazie per il bel pacchetto!anche se non riesco ad implementare le notifiche tramite google tts e il problema del messaggio di notifica che ad ogni riavvio va inserito,tutto funziona,chiedevo maggiori informazioni (se possibile)…
    Visto che non passano mai due tipi di raccolta dove abito,chiedevo se fosse possibile ridurre la larghezza della picture card dove vengono mostrati i bidoni…Grazie!Buon 2021!

  15. Major ha detto:

    Ciao ? Il pkg è stupendo!
    Mi piacerebbe però usare le notifiche tramite l’app di Home assitant…c’è qualche modo per poterle usare invece di quelle di telegram?
    Grazie in anticipo

  16. Diego ha detto:

    Ciao.ottima guida.mi funziona tutto tranne che la notifica al google home.ho messo il nome del mio media_player nel campo in parrte a tts ma quando provo ad inviare il messaggio forzato quello di telegram funziona mentre quello del google home no va.non capisco dove sbaglio…grazie

  17. matteo ha detto:

    ciao a tutti …. anche io provo ad inviare le notifiche telegram in automatico e nn funzionano. inviandole manualmente vanno però.
    inoltre non ricevo le notifiche da alexa.

    il codice è scritto cosi…

    servizio_notifica_hp:
    name: notify.
    initial: ‘matteo’ —-> il servizio si chiama notify.matteo
    titolo_notifica_hp:
    name: titolo notifica
    initial: ‘*Differenziata*’
    messaggio_notifica_hp:
    name: messaggio notifica
    initial: ‘Domani ritirano:’
    entity_google_tts_hp:
    initial: ‘google_home’
    name: ‘tts.google_say’
    entity_alexa_tts_hp:
    initial: ‘matteo_marina’ ——-> entità si chiama media_player.matteo_marina
    name: ‘alexa_tts’
    entity_script_tts_hp:
    initial: ‘speech’ —–> voglio la notifica vocale
    name: ‘script.’

    grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Advertisment ad adsense adlogger