Jump to content
PLC Forum


Sign in to follow this  
smoothhands

Homeplc E Openhab...

Recommended Posts

smoothhands

Buonasera,

ho già notato in altri thread (come ) che è venuto fuori l'argomento openHAB.

openHAB è un applicativo sviluppato in Java che, mediante l'uso di

appositi moduli software, è in grado di interfacciarsi con diversi

sistemi domotici e generare l'interfaccia web di comando a partire da

diversi file di configurazione.

Potrebbe essere interessante integrare anche HomePLC e

la versione Linux parte sicuramente è avvantaggiata.

Share this post


Link to post
Share on other sites

Andrea Ghensi

Riassumendo quanto emerso nell'altro post, si potrebbe utilizzare un homeplc "normale" e affiancarci un qualsiasi sistema, meglio se embedded, e dialogare con esso tramite modbusRTU, ma la comunicazione risulterebbe poco efficiente e non arriverebbe a dialogare direttamente con hplc come potrebbe fare invece openhab installato su hplc.linux.

Il problema riscontrato con hplc.linux è la ridotta capacità della NAND flash, che già ospita boot loader e sistema operativo e non è in grado di contenere anche la suite di openhab.

Il primo tentativo di smoothands è stato quello di togliere tutti i componenti superflui sia dal sistema operativo (non ho invece capito se avevi già eliminato binding non utilizzati), ma dato l'uso di eclipse la suite è assai ingombrante.

La seconda soluzione è utilizzare una microSD su cui inserire openhab e montarla all'avvio, e sembra essere la migliore strada percorribile.

Infine c'è la necessità di creare il "binding" per openhab (ossia il plugin che permette a openhab di dialogare con hlpc), che sarà un "semplice" wrapper della libreria java messa a disposizione con il plc.

Share this post


Link to post
Share on other sites
smoothhands

Ciao Andrea,

il pacchetto runtime di openHAB (versione 1.4.0) occupa su disco 43.1MB

senza considerare binding aggiuntivi.

La versione Java scaricata è la Java SE Embedded in particolare

ARMv7 Linux - Headless - Server Compiler EABI, VFP, SoftFP ABI, Little Endian

Stranamente a quanto pensavo con la versione HardFP ABI non ho avuto fortuna... ma riproverò.

La VM occupa su disco 46.6MB.

La memoria restante è di 134MB.

Potresti considerare un binding che acceda a HomePLC via tcp/ip anzichè installare openHAB direttamente

sul device. In questo modo l'HomePLC risulterebbe come Gateway più o meno come viene realizzato

per altre sistemi domotici... knx, btcino etc...

Share this post


Link to post
Share on other sites
Aleandro2008
Riassumendo quanto emerso nell'altro post, si potrebbe utilizzare un homeplc "normale" e affiancarci un qualsiasi sistema, meglio se embedded, e dialogare con esso tramite modbusRTU, ma la comunicazione risulterebbe poco efficiente e non arriverebbe a dialogare direttamente con hplc come potrebbe fare invece openhab installato su hplc.linux.

Questo tipo di applicazione è comunemente utilizzato per interfacciarlo con vari dispositivi embedded....

la comunicazione sia che sia basata su COM che su LAN è efficiente....

ma certamente non potrà mai essere paragonabile all'accesso diretto alla memoria ram di cui normalmente

si potrebbe giovare con l'uso standard per cui sono stati concepiti...

disponendo della libreria nativa per Java (per chi sa programmare...) non dovrebbe esserci problemi a interfacciarlo direttamente...

con programmi che utilizzano quella tecnologia...specialmente se di tipo Open... :smile:

Edited by Aleandro2008

Share this post


Link to post
Share on other sites
smoothhands

È proprio per l'efficienza che, un tentetivo di inserire

direttamente openHAB nell'HomePLC, valeva la pena di farlo.

In tutti gli altri bindings (usando la terminologia di oH) viene

sempre utilizzata un'interfaccia: seriale, ethernet.

Sfruttando direttamente le librerie native il binding potrebbe

diventare molto più veloce che negli altri diventando

una golosa alternativa per gli entusiasti.

Senza contare che si guadagnerebbe la possibilità per l'HomePLC di ampliare

il numero di integrazioni possibili con altri sistemi.

Sebbene sia sempre un'integrazione di alto livello non

disdegnerei affatto la cosa.

Nel qualcaso parte dell'infrastruttura cascasse il cuore su

HomePLC continuerebbe a funzionare garantendo la continuita

a parti vitali o più preziose dell'impianto.

Potrebbe essere anche un nuovo modo per integrare più

impianti HomePLC senza dover sprecare tutto un ramo master

per il link con altri.

Dopotutto non sempre è necessaria una reattività elevata.

Edited by smoothhands

Share this post


Link to post
Share on other sites
Aleandro2008

Potresti considerare un binding che acceda a HomePLC via tcp/ip anzichè installare openHAB direttamente

sul device. In questo modo l'HomePLC risulterebbe come Gateway più o meno come viene realizzato

per altre sistemi domotici... knx, btcino etc...

perché metterne 2?.... se già HomePLC.Linux supporta sia il Java che il Web Server... il risultato finale può essere quello del Demo sopra...

non serve altro hardware ne seriale ne su Lan...

al massimo ti carichi l'applicativo su SD-Card e lo esegui in Ram all'avvio... :smile:

Share this post


Link to post
Share on other sites
smoothhands

Il risultato, graficamente parlando, è simile ma per generarlo non va

scritta una riga di codice php o html.

Si aggiungono tante righe di semplice testo per ogni "item" a un file

e ogni item può essere connesso a un sistema domotico differente.

es.

Switch Doorbell "Doorbell" <bell> { serial="/dev/usb/ttyUSB0" }

questo è un item di tipo switch, di nome Doorbell, con etichetta "Doorbell",

con icona <bell> legata al binding {...}

È più o meno lo stesso concetto tra ladder e un linguaggio di programmazione

di alto livello.

Infatti la possibilità di installarlo sull'HomePLC è interessante.

Viene utilizzato un web server scritto in Java... ma come scritto sopra

non va scritta una riga di codice html/php

Beh... metti che qualcuno ha già una installazione openHAB su un server

vuoi negargli la possibilità di interfacciarsi direttamente all'HomePLC

senza fare grossi sforzi d'installazione?

Edited by smoothhands

Share this post


Link to post
Share on other sites
Aleandro2008
Il risultato, graficamente parlando, è simile ma per generarlo non va

scritta una riga di codice php o html.

se per quello neppure con software della Clever... l'interfaccia di configurazione e su Cloud...

e il backup è automatico... questo ne permette la modifica anche in remoto da qualsiasi ti trovi...

Beh... metti che qualcuno ha già una installazione openHAB su un server

vuoi negargli la possibilità di interfacciarsi direttamente all'HomePLC

senza fare grossi sforzi d'installazione?

ci mancherebbe!! :lol:

e solo un esposizione di più opzioni applicative... c'è chi vuole spendere meno e chi vuole faticare meno...

chi non è contento se non dura un po di fatica e non piace le soluzioni pronte... c'è poi chi non ne vuole sapere nulla di nulla...

e vuole tutto pronto e installato... questo non è un mondo semplice... :wacko::roflmao:

Share this post


Link to post
Share on other sites
smoothhands
con software della Clever...

Si sta parlando però di HomePLC standard vero?

Dovrebbe richiedere anche una componente software da installare a fianco di ABS.

Riesce a gestire anche gli eventi?

Questo perchè, anche se ho letto alcuni post, non ho capito se anche la versione Linux

possa sfruttare questa caratteristica nativamente.

Mi pare di aver capito che vada implementata con il linguaggio scelto.

Share this post


Link to post
Share on other sites
Aleandro2008
Si sta parlando però di HomePLC standard vero?

no quello che vedi come demo online è direttamente il Web Server di HomePLC.Linux... :smile:

Share this post


Link to post
Share on other sites
smoothhands

Bastava guardare il link in effetti ;-)

Share this post


Link to post
Share on other sites
smoothhands

Allora... volevo condividere parte dello sviluppo con tutti voi.

Partirei con anallizzare alcuni requisiti per l'interfacciamento tra i due sistemi.

Per permettere la comunicazione tra openHAB e HomePLC occorre realizzare quelli che

vengono chiamati bindings. Un binding è una stringa di configurazione che lega un Item

(letteralmente elemento) a tutta una serie di azioni necessarie per il collegamento

con una particolare risorsa (nel nostro caso di HomePLC).

Visto che la maggior parte di chi lavora con HomePLC è abituato allo standard IEC

pensavo inizialmente di mantenere valido il set di istruzioni. Quindi avremo le seguenti risorse...

- %IX<reg>.<bit>

- %QX<reg>.<bit>

- %IW<reg>

- %QW<reg>

- %MW<reg>

In alcuni casi è necessario estrarre un bit o una parte di bits da un registro

quindi pensavo di aggiungere le seguenti estensioni...

- %MW<reg>.<bit>

- %MW<reg>.<start bit>.<stop bit>

Nel nostro caso un binding potrebbe essere del tipo...

<namespace>="<resource>"

dove <namespace> potrebbe essere hplc quindi per fare qualche esempio...

/* Lights */
Switch Light_Table "Table" (Lights) {hplc="%QX1.0"}
Switch Light_Wall "Wall" (Lights) {hplc="%QX1.3"}

Che definiscono due semplici items del tipo Switch, di nome Light_Table e Light_Wall,

con etichetta "Table" e "Wall" rispettivamente e appartenenti entrambi al gruppo (Lights).

Nel caso di ragnetto temperatura umidità si potrebbe avere una cosa del tipo...

Dimmer H_BedRoom "Humidity" (InfoBedroom) {hplc="%MW5516.0.7"}

L'indicazione Dimmer è una convenzione openHAB per indicare un valore che può essere

di tipo percentuale.




			
				


	Edited  by smoothhands
	
	

			
		

Share this post


Link to post
Share on other sites
smoothhands

Guardando lato HomePLC ho costruito un generatore di eventi che mi permetterebbe

di aggiornare gli Items che sono legati con i registri domotici che hanno subito una variazione.

Di tutti gli 8000 registri però me ne serve considerare solo una parte in quanto

dei relè interni, dell'area library... non penso servano più a molto con la versione Linux.

Pensavo di considerare la seguente tabella ridotta...

- Area Principale       %MW0    - %MW399  Ingressi - Uscite Digiali     25 Word
- Area Flag System      %MW800  - %MW863  System - Flag                 1008 Bit (63 Word)
- Area Output GSM - SMS %MW865  - %MW880  Utente - Relè Output SMS      255 Bit (15 Word)
- Area Input GSM - SMS  %MW881  - %MW896  Utente - Relè Input SMS       255 Bit (15 Word)
- Registri DMX 512      %MW2701 - %MW2956 Utente - Registri - Ritentivi 256 Word
- Registri DALI         %MW2957 - %MW3148 Utente - Registri - Ritentivi 190 Word
- Extended Address      %MW5500 - %MW5999 Area Indirizzamento esteso    500 Word
- Area System           %MW7500 - %MW7999 System - Registri             500 Word

Ci sono aree, che non ho considerato, che contengono informazioni utili da gestire?

Intendo aree legate a dispositivi o ad informazioni che possono variare in base ad

azioni su dispositivi.

Share this post


Link to post
Share on other sites
Aleandro2008

Intendo aree legate a dispositivi o ad informazioni che possono variare in base ad

azioni su dispositivi.

per esempio l'area dedicata al Konnex.... :smile:

e l'area Home Automation...

Share this post


Link to post
Share on other sites
smoothhands

Mmmh... infatti nella tabella delle risorse ci sono dei buchi

tra un'area e l'altra.

Avevo trascurato il gateway knx per il fatto che openHAB

potrebbe interfacciarsi direttamente (più o meno).

Tra l'altro perdevo anche le centrali d'allarme.

Facciamo che considero tutti gli 8000 registri e poi

vediamo che succede.

Nel frattempo cerco di farmi una mappa più

dettagliata delle aree di memoria.

Share this post


Link to post
Share on other sites
smoothhands
e l'area Home Automation...

Per area Home Automation intendi quella a indirizzo %MX7000 ?

Share this post


Link to post
Share on other sites
Aleandro2008
Per area Home Automation intendi quella a indirizzo %MX7000 ?

esatto! :smile:

Share this post


Link to post
Share on other sites
smoothhands

Un'altra precisazione Aleandro...

Nel caso di HomePLC.Linux i registri ritentivi e quelli delayed mantengono

questa funzione (perchè gestita dal processore domotico) oppure

risultano come tutti gli altri?

Share this post


Link to post
Share on other sites
smoothhands

Buongiorno a tutti,

vorrei chiedere a chi ha una versione dell'HomePLC.Linux

di effettuare un piccolo test sull'occupazione di risorse

del generatore di eventi in Java.

Attualmente è impostato in modo abbastanza aggressivo

in modo che ogni 100msec

effettui la lettura di tutti gli 8000 registri a 16 bit.

A regime, sul mio dispositivo, impiega tra i 50 e 60msec

a leggerli tutti occupando circa il 50% della cpu.

Il software stampa a video il contenuto dei registri che

si sono modificati col tempo.

Share this post


Link to post
Share on other sites
smoothhands

Scusate, non vi ho scritto che stiamo parlando di parte del

software che sto sviluppando e che quindi vi devo

fornire per effettuare il test.

Forse non era poi così tanto chiaro.

Edited by smoothhands

Share this post


Link to post
Share on other sites
smoothhands

Una ulteriore precisazione.

Il carico della CPU, indicata nel post precedente, era riferita al valore

di punta: ovvero oscilla tra il 20% e il 50% che è il valore di picco.

Nel caso voglia considerare esclusivamente l'area di indirizzamento

principale assieme a quella estesa il carico della CPU oscilla tra

il 2% e il 10% mentre il tempo di lettura scende sui 6msec di media

con dei picchi sporadici a 15msec (sempre considerando i cicli

di lettura ogni 100msec).

Share this post


Link to post
Share on other sites
smoothhands

Buongiorno a tutti,

spero siate riusciti a rilassarvi in questo periodo di ferie generali.

Riprendo questo vecchio thread dopo un pò di inattività ma spero

di portare a termine un pò alla volta questo mio piccolo contributo

alla causa (riprendendo un vecchio motto del caro vecchio zio Bill)

... un HomePLC in ogni casa ... :P

In questo periodo ho dovuto, malgrado la mia cocciutaggine, abbandonare

lo sviluppo del software su piattaforma Apple in quanto sia la generazione

del binding per openHAB che la cross compilazione per la libreria nativa

per l'HomePLC non ne volevano sapere di arrivare in fondo.

Passato a linux finalmente ho ottenuto quello che cercavo.

La situazione attuale è questa:

1. Libreria nativa per HomePLC.Linux modificata in modo da consentire

la generazione di eventi (attualmente sull'area IO e quella estesa) in modo

da ridurre considerevolmente i tempi di lettura dei registri (si parla di

microsecondi) e dell'occupazione di CPU (che rimane a 0% - dato

che il lavoro viene effettuato in linguaggio c).

2. Generato lo scheletro per il binding openHAB di HomePLC.

Ora "rimane" (parole grosse ;) ) da mettere in comunicazione il binding openHAB

con l'HomePLC.Linux e vedere come si comporta il tutto.

Share this post


Link to post
Share on other sites
Aleandro2008

Quelli ritentivi ritengo di si...

quelli Delayed visto che servono solo per i cicli Ladder non penso servano...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...