Vai al contenuto
PLC Forum


HomePLC Linux DPLC4E e OpenHAB 2


Fiorenza

Messaggi consigliati

Buongiorno,

sono in possesso di un HomePLC Linux, suggeritomi dal mio elettricista per la realizzazione dell'impianto domotico di casa mia. Ho anche un modulo master 16 porte EMXJ16T.

Sono sistemista linux di professione e programmatrice . Non sono elettricista.

Sto cercando di fare funzionare HPlc linux con Openhab2: ho pensato di installare OpenHab2 su un raspberry ed interfacciarmi con Hplc tramite una pagina PHP, in cui ho "tradotto" i comandi passati tramite url (esempio: http://192.168.2.65/hplc.php?comando=<qualcosa>), nelle chiamate della libreria PHP Xcomm messe a disposizione sull'hplc stesso.

Su OpenHAB2 ho configurato i binding HTTP (per i comandi ON e OFF) e EXEC (per recuperare lo stato delle porte): entrambi richiamano hplc via web per le loro funzioni.

Non ho avuto problemi a comandare da OpenHab l'accensione di HPLC (sul display le luci girano più veloci quando è attivo) ed a spegnerlo.

Non riesco però gestire le porte del master, nel senso che se provo a  mettere ad 1 (hplcSetQx è la funzione utilizzata) l'output della prima uscita del master 1 (non ho nulla attaccato, per ora), non ho un riscontro visivo dei led del modulo master stesso, ma non ricevo nessun errore, semplicemente non viene fatto nulla.

 

Qualcuno ha esperienza con la libreria PHP (e le relative funzioni) messe a disposizione su HPLC ?

 

$value=hplcGetMw($addr);
hplcSetMw($addr,$value);
$value=hplcGetIx($addr,$bitn);
$value=hplcGetQx($addr,$bitn);
hplcSetQx($addr,$bitn,$value);
hplcNotQx($addr,$bitn);
$value=hplcGetIw($addr);
$value=hplcGetQw($addr);
hplcSetQw($addr,$value);
hplcGetMx($addr,$bitn)
hplcSetMx($addr,$bitn,$value)

 

Ad esempio le funzioni hplcGetMx e hplcSetMx  vanno a leggere ed impostare dei valori in memoria... Quando devo essere utilizzate ?

 

Certo non sono fissata con il PHP, mi è sembrata tuttavia la soluzione più veloce per interfacciarmi via rete all'hplc. Sono aperta ad altre soluzioni.

 

La mia necessità è di gestire Hplc via rete... ho visto che è presente anche un udpserver : in che modo può essere utilizzato ? Modbus per caso ?

 

Ringrazio anticipatamente chi riesce a darmi qualche lume in merito...

 

A presto

 

Fiorenza

 

Link al commento
Condividi su altri siti


del_user_56966
Quote

Non riesco però gestire le porte del master, nel senso che se provo a  mettere ad 1 (hplcSetQx è la funzione utilizzata) l'output della prima uscita del master 1 (non ho nulla attaccato, per ora), non ho un riscontro visivo dei led del modulo master stesso, ma non ricevo nessun errore, semplicemente non viene fatto nulla.

 

Prima del test da programma prova ad utilizzare il Test di sistema, da Home&Building una volta in linea con HomePLC utilizzi la finestra TEST I/O

per attivare l'uscita cosi vedi se il sistema è configurato correttamente, 

nella diagnostica il modulo deve essere riconosciuto...

e per far attivare gli I/O il sistema deve essere in Running (display che ruota velocemente)...

Link al commento
Condividi su altri siti

del_user_56966

 

Home & Building è una finestra del framework ABS XComm il software a cui tutti gli HomePLC, Room Controller ecc.. si interfacciano

per la configurazione e la diagnostica del sistema, prima, durante e dopo l'avviamento impianto... 

Link al commento
Condividi su altri siti

Perfetto, grazie.

Mercoledì pomeriggio provo a fare il test con il mio elettricista, che ha gli strumenti ed il software necessario.

 

 

Link al commento
Condividi su altri siti

Buongiorno,

ho fatto i test con Home & Building di ABS Xcomm, e tutto funziona regolarmente.

E' emerso che molto probabilmente c'è un problema di sintassi nell'indicare le porte nelle funzioni della libreria PHP: infatti ho attivato una porta di uscita del master 1 attraverso il software Xcomm (con conseguente riscontro visivo nel modulo master) ed ho provato a testare la porta attraverso il pannello web in PHP precaricato sull'Home PLC: stando agli standard e quanto indicato anche dal manuale di Ladder Home, la porta in questione dovrebbe essere QX1.0.

Indicando nel seguente form della pagina web, nella sezione Read Qx Register  , nel campo "read address" QX1 e nel campo "read bit" 0, il valore restituito è OFF, ma lo è anche se metto i valori in minuscolo o se scrivo qualsiasi cosa , anche pippo e 0.

Gentilmente qualcuno sa indicarmi la sintassi corretta ?

Io sono in possesso solo del manuale di sviluppo revisione 3, di poche pagine e con nulla scritto riguardo alla sintassi.

So che esiste anche un manuale più corposo, la versione 1...per caso qualcuno lo ha è può postare il PDF ?

 

Grazie e buona giornata

 

Fiorenza

 

hplcphpjpeg.jpg.3a36cbe8d0ebfb0fcd1aabdf87eea9b7.jpg

Link al commento
Condividi su altri siti

Risolto: basta semplicemente indicare il numero se QX o quant'altro...più semplice del previsto...

Resta poco bello il fatto che non venga neppure restituito un errore nè fatto un controllo a quanto passato dalle funzioni della librerie PHP

 

Buona giornata

 

Fiorenza

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao Fiorenza, e benvenuta su questo forum.

Devi considerare che l'estensione php utilizzata per interfacciarsi (tramite driver del kernel linux) al processore

domotico altro non è che la libreria nativa (di cui dovresti aver accesso ai sorgenti) alla quale è stato

aggiunta una interfaccia per l'integrazione a php.

 

Se hai voglia di cimentarti potresti provare a modificare la libreria originale, cross compilandola, e

aggiungere la parte di interfaccia per la versione di php presente su HomePLC.Linux.

Ovviamente non è una strada semplice e occorre verificare se si hanno a disposizione

tutti gli strumenti per poter generare una estensione funzionante.

 

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...