Vai al contenuto
PLC Forum


Interfacciare OpenHab ad impianto domotico DUEMMEGI tramite ModBus


omar1971

Messaggi consigliati


  • Risposte 141
  • Created
  • Ultima risposta

Top Posters In This Topic

  • smoothhands

    73

  • omar1971

    65

  • electricb

    2

  • Ivan Botta

    1

Ciao, ecommi

non so come ringraziarti per la lezione che mi hai dato.... mi è servita molto per iniziare e cercare di capire il funzionamento, anche se nono ancora fermo al comando delle uscite.

 Ho provato a contattare la DUEMMEGI per chiarimenti ma fino ad ora nessuna risposta.

Nel mentre visto che sono a casa in malattia, ho provato a prelevare dei dati da un sito inerenti la potenza dell'impianto fotovoltaico.

 

ho preso spunto dal seguente link https://github.com/openhab/openhab/wiki/Samples-Binding-Config#how-to-get-data-from-kostal-piko-solar-inverter-via-http-binding

 

ho copiato il binding http nella cartella addon

 

ho modificato il file cfg nella sezione http come dice il link, apportando modifiche:

 

#http:kostal-inverter-cache.url=http://pvserver:password@192.168.1.1/index.fhtml
http:sma-inverter-cache.url=http://192.168.1.168/  
http:sma-inverter-cache.updateInterval=60000

 

ho inserito nell'item i seguenti parametri

 prendendo spunto dalla pagina web dell'impianto fotovoltaico sui dati da estrapolare 

 

/* Energia solare (AC) */
Number solar_active_power "Potenza Istantanea [%.0f W]" <inverter>   { http="<[sma-inverter-cache:30000:REGEX(.*power</td>.*?([0-9]*)</td>.*)]" }
/* solar energy */
Number solar_energy_total     "Rendimento giornaliero [%.0f kWh]"       { http="<[sma-inverter-cache:30000:REGEX(.*DailyYield</td>.*?(\\d*)</td>.*)]" }
Number solar_energy_day       "Rendimento Totale [%.2f MWh]"      { http="<[sma-inverter-cache:30000:REGEX(.*TotalYield</td>.*?([0-9\\.]*)</td>.*)]" }
 

ho inserito nella sitemap i seguenti riferimenti

 

    Frame label="Fotovoltaico" {
    Text item=solar_active_power
    Text item=solar_energy_total
    Text item=solar_energy_day
    }

Avvio il tutto e sul sito appaiono le scritte, le icone, ma dove dovrebbe esserci il dato, evidenzia solo un trattino

 

che ci può essere?

 

 

 

 

 

Link al commento
Condividi su altri siti

Ciao omar1971,

ma se inserisci l'indirizzo 192.168.1.168 nel tuo browser ti 

restituisce la pagina web con i valori che ti interessano?

 

Una volta che hai la pagina web devi andare a vedere i sorgenti

che il webserver ti ha restituito e controllare come vengono

formattati i valori che ti interessano.

 

Può essere che tali valori non siano posizionati in una tabella.

Poi occorre verificare che le regular expressions siano corrette.

 

Ci sono dei siti che fanno il parsing di testi con l'espressione che gli

inserisci per verificarne il comportamento.

 

Link al commento
Condividi su altri siti

ma se inserisci l'indirizzo 192.168.1.168 nel tuo browser ti 

restituisce la pagina web con i valori che ti interessano?

SI

dal sito ho fatto una visualizzazione frame..

ho colorato i valori che mi interessano

 

<td class="tdcol0">Potenza:</td>
  <td id="Power" class="tdcol1">0 W</td>
  </tr>
  <tr class="oddrow">
  <td class="tdcol0">Rendimento giornaliero:</td>
  <td id="DailyYield" class="tdcol1">1,21 kWh</td>
  </tr>
  <tr class="evenrow">
  <td class="tdcol0">Rendimento totale:</td>
  <td id="TotalYield" class="tdcol1">28,72 MWh</td>
  </tr>

 

 

Link al commento
Condividi su altri siti

Per quanto riguarda il dato Power io metterei questa

 

.*Power.*>.*?([0-9]*).*<\/td>

 

oppure...

 

.*Power.*>.*?([0-9]*).*</td>

 

Credo che sia buona la prima \/td in quanto per il carattere / ci vorrebbe il simbolo escape \

Ricordati che puoi anche non riavviare openHAB. Edita direttamente gli Items.

Prova.

Link al commento
Condividi su altri siti

Per i dati sul rendimento, giornaliero e totale, ci potrebbero essere dei problemi.

Il problema è dovuto alla virgola. Può essere che una volta estratta la stringa 1,21

non venga interpretata correttamente. Sarebbe meglio fosse del tipo 1.21

 

Ad ogni modo per estrarre le stringhe interessate proverei...

.*DailyYield.*>.*?(\\d*,\\d*).*?<\/td>
.*TotalYield.*>.*?(\\d*,\\d*).*?<\/td>

 

Link al commento
Condividi su altri siti

ho provato, penso di aver sbagliato qualcosa visto che mi da errore in fase di imputazione dell'item

 

Number solar_active_power "Potenza Istantanea [%.0f W]"    <inverter> { http="<[sma-inverter-cache:30000:REGEX (.*Power.*>.*?([0-9]*).*<\/td>)]" }

Link al commento
Condividi su altri siti

ciao, ho lanciato opehab e ti allego la parte di ciò che poso capire...

 

 reference for transformation service of type REGEX
17:40:44.398 [WARN ] [.o.b.http.internal.HttpBinding:185  ] - couldn't transform
 response because transformationService of type 'REGEX ' is unavailable
17:40:44.398 [DEBUG] [.o.b.http.internal.HttpBinding:197  ] - transformed respon
se is '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-
8">
                <title>Sunny WebBox</title>
        </head>
        <frameset rows="75,*,22" frameborder="no" border="2" framespacing="0">
                <frame src="top.htm" name="topFrame" scrolling="NO" topmargin="0
" leftmargin="0" marginheight="0"
                        marginwidth="0" noresize>
                <frame src="home_frameset.htm" name="mainFrame" topmargin="0" le
ftmargin="0" marginheight="0"
                        marginwidth="0">
                <frame src="bottom.htm" name="bottomFrame" scrolling="NO" topmar
gin="0" leftmargin="0"
                        marginheight="0" marginwidth="0" noresize>
        </frameset>
</html>
'
17:40:44.401 [DEBUG] [.o.b.http.internal.HttpBinding:262  ] - Couldn't create st
ate of type 'class org.openhab.core.library.items.NumberItem' for value '<!DOCTY
PE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-

Link al commento
Condividi su altri siti

Quote

17:40:44.398 [WARN ] [.o.b.http.internal.HttpBinding:185  ] - couldn't transform response because transformationService of type 'REGEX ' is unavailable

Che strano.

Per il resto la risorsa http l'ha raggiunta e scaricata quindi per qualche strano motivo

non riesce ad applicare la trasformazione richiesta.

 

 

Link al commento
Condividi su altri siti

In questo caso si intende con trasformazione il prendere tutta la pagina web restituita

ed estrarne una parte. Le istruzioni come estrarre la parte che interessa vengono

specificate nella stringa di REGEX(...).

 

E' come se mancasse un componente a openHAB.

 

Poi c'è il problema di come interpretare quanto estratto.

Infatti qualche post fa mi era venuto il dubbio che valori tipo 18,7 non venissero

interpretati bene per via della virgola. Ma è solo una supposizione.

 

Link al commento
Condividi su altri siti

Ovviamente questo non ti aiuta..

<td class="tdcol0">Potenza:</td>
  <td id="Power" class="tdcol1">0 W</td>
  </tr>
  <tr class="oddrow">
  <td class="tdcol0">Rendimento giornaliero:</td>
  <td id="DailyYield" class="tdcol1">1,18 kWh</td>
  </tr>
  <tr class="evenrow">
  <td class="tdcol0">Rendimento totale:</td>
  <td id="TotalYield" class="tdcol1">28,72 MWh</td>

p.s. io ho richiamato la voce power senza le virgolette

 

Link al commento
Condividi su altri siti

Il problema non credo sia nella definizione dell'Item. Anche perchè te le avevo già indicate.

Non le ho sparate a caso... le ho testate tramite il sito regex101.com

 

E' proprio che il motore di openHAB non trova il componente per gestire REGEX.

Hai fatto qualche modifica al pacchetto?

Link al commento
Condividi su altri siti

in che senso modifica... ci sto giocando su item e sitemap ..  dici che ho sminchiato qualcosa? 

o ci sarà qualche file da aggiungere o modificare????

 

ora sto provando con i gruppi

 

Link al commento
Condividi su altri siti

questi gli items 

Number solar_active_power "Potenza Istantanea [%.0f W]"    <inverter> { http="<[sma-inverter-cache:30000:REGEX (.*Power

.*>.*?([0-9]*).*</td>

.*)]" }

Number solar_energy_total    "Rendimento giornaliero [%.0f kWh]"     { http="<[sma-inverter-cache:30000:REGEX (.*DailyYield.*>.*?([\\d,]*).*?</td>)]" }

Number solar_energy_day    "Rendimento Totale [%.2f MWh]"     { http="<[sma-inverter-cache:30000:REGEX (.*TotalYield.*>.*?([\\d,]*).*?</td>)]" }

 

Link al commento
Condividi su altri siti

Hai ragione  che me le cerco....

 

ora ho modificato cosi:

Number solar_active_power "Potenza Istantanea [%.0f W]"    <inverter>         { http="<[sma-inverter-cache:30000:REGEX(.*Power.*>.*?([0-9]*).*</td>.*)]" }

 

ho riavviato il tuto ...ma nulla

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

×
×
  • Crea nuovo/a...