Vai al contenuto
PLC Forum


Homeplc E Openhab...


smoothhands

Messaggi consigliati

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.

Link al commento
Condividi su altri siti


  • Risposte 53
  • Created
  • Ultima risposta

Top Posters In This Topic

  • smoothhands

    28

  • del_user_56966

    16

  • cande78

    7

  • Andrea Ghensi

    1

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

del_user_56966
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:

Modificato: da Aleandro2008
Link al commento
Condividi su altri siti

Inserita: (modificato)

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

Modificato: da smoothhands
Link al commento
Condividi su altri siti

del_user_56966

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:

Link al commento
Condividi su altri siti

Inserita: (modificato)

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?

Modificato: da smoothhands
Link al commento
Condividi su altri siti

del_user_56966
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:

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

del_user_56966
Si sta parlando però di HomePLC standard vero?

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

Link al commento
Condividi su altri siti

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.




			
				


	Modificato:  da smoothhands
	
	

			
		
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

del_user_56966

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

  • 4 weeks later...

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.

Link al commento
Condividi su altri siti

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.

Modificato: da smoothhands
Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

  • 4 months later...

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.

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