madroid225 / homeassistant-get-PUN

Piccolo flow node-red per homeassistant per recuperare il PUN giornaliero
GNU General Public License v3.0
2 stars 1 forks source link

possibile fix per lo stop di qualche giorno fa #1

Open ebaschiera opened 1 year ago

ebaschiera commented 1 year ago

Ciao, da qualche giorno ha smesso di funzionare. Per farlo ripartire ho dovuto fare 2 modifiche. Ti metto i numeri delle righe che ho modificato così come si vedono in NodeRED.

  1. pare che sia cambiato il form con i checkbox per procedere all'accesso ai dati in xml, quindi nella funzione set payload and headers ho modificato la riga 24 così: msg.payload = "__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwULLTIwNTEyNDQzNzQPZBYCZg9kFgICAw9kFgICAQ9kFgQCDA9kFgJmD2QWAmYPZBYCAgkPD2QWBB4Kb25rZXlwcmVzcwUccmV0dXJuIGludmlhUFdEKHRoaXMsZXZlbnQpOx4MYXV0b2NvbXBsZXRlBQNvZmZkAhUPZBYEAgEPDxYCHg1PbkNsaWVudENsaWNrBSZqYXZhc2NyaXB0OndpbmRvdy5vcGVuKCc%2Fc3RhbXBhPXRydWUnKWRkAgUPZBYCAgcPDxYCHgdWaXNpYmxlZ2RkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYFBQxjdGwwMCRJbWFnZTEFEmN0bDAwJEltYWdlQnV0dG9uMQUgY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRzdGFtcGEFJGN0bDAwJENvbnRlbnRQbGFjZUhvbGRlcjEkQ0JBY2NldHRvMQUkY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRDQkFjY2V0dG8ySA%2F1DwxgMH6%2FsDINHB8lrjDkYAivXW6VP5Rs356gL6A%3D&__VIEWSTATEGENERATOR=BD5243C0&__SCROLLPOSITIONX=0&__SCROLLPOSITIONY=586.4000244140625&__PREVIOUSPAGE=U3F17-objy9bkW1AmitD818ra2HDAa6pSNz-frS5LQ1T2IQEcZ0oG2kaSwKv7kBt0_VXpgA8NJz2ef22MEBpdDFHatzJoSdXggZqCQskybOg6w4kuYPb6aA9IFDU8qsg0&__EVENTVALIDATION=%2FwEdABNXWWA9At9zuVKGy3baflp5cS%2Fs8I39AyxLz4tn%2BAkBiEW%2BokpiqwYG%2BB4aTa9o%2Bs43drX32rKpFiwqoHxZnWEOD4zZrxX92uOlyIx1SyGTQmV8haT0EfVomfKCKov4HgnZl%2FXwcz7QqxVnz%2BOmFVuWzNBM98trssXld5dD73vgQX4H%2F0z%2F058uP3NmytG8PXozrkfQ7SmiPGgdsZPdEEV8g%2Fgu4%2BzhSeI0ttI2ADLh%2FwU7Nz%2F6FKjnm2sSszw4FMr8VEDvc%2BzuMc1oKpjHdCosjDu35o5CUn6umW4JNpE1p4raaQaFnXKaLuO1sKRm4e9ZUwtJIYRkZxZmb4HmgHR6ltkgVwReXnm%2BEHOYvXjKP0Sd1PBpsO2hEyKj10xH8juA%2BrwVNruExpEBEKBupGsohW64k9idiD5bZnm0UYR15VGun%2FtJR5MjAsLpO9ohiWI%3D&ctl00%24tbTitolo=cerca+nel+sito&ctl00%24UserName=&ctl00%24Password=&ctl00%24ContentPlaceHolder1%24CBAccetto1=on&ctl00%24ContentPlaceHolder1%24CBAccetto2=on&ctl00%24ContentPlaceHolder1%24Button1=Accetto";

  2. Pare non funzionare correttamente la determinazione dell'ora rispetto agli indici dell'oggetto dei dati. Nella funzione GET PUN Value ho modificato la riga 10 così: msg.payload = punData.pun[ora-1].value / 1000; (nota il "-1" nell'indice delle ore)

Che ne dici? Possono andare come fix o c'è dell'altro?

In ogni caso grazie del tuo meraviglioso flow!

madroid225 commented 1 year ago

Grazie non me ne ero accorto. Per il discorso dell'ora : l'ora di riferimento per il recupero del PUN orario parte dal new Date().getHours() che nel range tra le 00:00:00 e le 00:59:59 torna 0 se metti un -1 il punData.pun[ora-1].value punta ad un indice dell'array negativo. Inoltre il dato che viene prelevato dal GME è ordinato e non considera il parametro 'ora' dell'xml così che quello che viene considerato ora 1 in xml è nell'indice 0 e viene utilizzato nella fascia oraria tra le 0 e le 0:59:59. Nell'xml le ore vanno da 1a 24 e in assenza di altre specifiche ho considerato che 1 è l'ora tra le 0 e le 0:59:59 così come le 24 vanno da 23:00 a 23:59:59. Non vedo quindi l'errore ma potrei sbagliarmi, nel caso puoi farmi capire meglio il problema che vedi? magari con un esempio? :-)

ebaschiera commented 1 year ago

In effetti per qualche strano motivo il problema dell'ora non mi si è più verificato. Ho provato a togliere la mia modifica e non ha dato l'errore che avevo riscontrato. Nel frattempo ho aggiornato NodeRED, riavviato Home Assistant più volte, e qualcosa nell'ambiente di esecuzione potrebbe essere cambiato. Quindi direi che possiamo buttarci alle spalle questa segnalazione. :) Grazie!

madroid225 commented 10 months ago

Visto che oggi è andato ancora in errore ho deciso di fixare, credo definitivamente, il problema modificando il payload con quello che arriva dinamicamente dala prima chiamata: msg.payload = "EVENTTARGET=&EVENTARGUMENT=&__LASTFOCUS="

ebaschiera commented 10 months ago

A me non è andato in errore, sta funzionando correttamente... :thinking: