Vai al contenuto
PLC Forum


Integrazione OpenHAB con Hplc


flavio.dallara

Messaggi consigliati


  • Risposte 161
  • Created
  • Ultima risposta

Top Posters In This Topic

  • flavio.dallara

    74

  • smoothhands

    63

  • del_user_56966

    19

  • ilgio80

    4

Gli script di avvio per questa particolare versione di openhab li trovi nella 

directory /initscripts. Sono 3 file:

- S87-openhab.sh

- K87-openhab.sh

- openhab

 

Sono l'ultima cosa che ho preparato, copiando qua e la, e quindi

non sono probabilmente ben formati ma funzionavano e quindi li

ho lasciati come buoni.

 

Non usare update-rc.d... non è detto appunto che funzioni.

in /etc/init.d sono presenti rcS e rcK che pensano ad avviare gli

script in sequenza.

 

Quello che puoi controllare è che tutti i percorsi indicati nei file

siano corretti... ad esempio...

DAEMON=/usr/local/java/ejre1.7.0_75/bin/java
ECLIPSEHOME="/mnt/microsd/openhab";

 

e li devi controllare in tutti e 3 i file.

 

Una volta che riesci ad avviare openhab regolarmente

magari possiamo anche vedere come migliorare il contenuto di

questi script di avvio.

 

 

 

Link al commento
Condividi su altri siti

flavio.dallara

scusami ma forse sono io rinc....

Il file rcS dovrebbe essere quello adibito allo start... infatti se guardo il file ha un ciclo for per tutti i file SXX che trova all'interno della cartella init.d. 

Ho copiato tutti e tre i file all'interno della cartella e controllato che i percorsi di java ed eclipse siano corretti in tutti e tre i file ma se faccio un reboot del masterweb... niente non parte..

A questo punto ho provato a lanciare a mano lo script " sh /etc/init.d/S87-openhab.sh start " e non capisco... questo è il risultato:

 


: not found/S87-openhab.sh: line 10:
: not found/S87-openhab.sh: line 12:
: not found/S87-openhab.sh: line 14:
: not found/S87-openhab.sh: line 17:
: not found/S87-openhab.sh: line 20:
: not found/S87-openhab.sh: line 23:
: not found/S87-openhab.sh: line 29:
/etc/init.d/S87-openhab.sh: line 31: find: not found
/etc/init.d/S87-openhab.sh: line 31: sort: not found
/etc/init.d/S87-openhab.sh: line 31: tail: not found
: not found/S87-openhab.sh: line 31:
: not found/S87-openhab.sh: line 32:
: not found/S87-openhab.sh: line 34:
/etc/init.d/S87-openhab.sh: exit: line 36: Illegal number: 0

 

la cosa strana è che le line 10,12,14,17,29,32,34 sono righe vuote...

20,23 sono le righe dove sono contenute i percorsi da te indicati...

la 31 secondo me viene di conseguenza perchè non torva la 20 e la 23...

 

 

 

Link al commento
Condividi su altri siti

Non vorrei che sia un problema di codifica dei file.

Magari è stato editato sotto windows e poi copiato

pari pari su linux.

 

Ovviamente i percorsi devono essere quelli buoni

per la tua configurazione.

 

Credo che i tre file siano perfettamente identici.

Quindi se "openhab" ti funziona potresti provare

a crearne una copia e rinominarlo come S87-etc...

in modo da sostituire quello rovinato.

 

Al limite posso passarti quelli che ho sul mio

linux ma poi devi comunque editarli con vi

Link al commento
Condividi su altri siti

flavio.dallara

I percorsi alla fine sono gli stessi... e i file alla fine non li ho nemmeno editati ( essendo gli stessi percorsi ) però magari provo come dici tu a copiare e rinominare il file openhab che funziona...

Link al commento
Condividi su altri siti

Senti ma nello script rcS tu hai le istruzioni...??

# add some mounting points
mkdir /dev/pts
mkdir /dev/shm

# mount filesystems
mount -a
mount -t ext4 /dev/mmcblk0p1 /mnt/microsd

PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH

Mi riferisco alla # mount filesystems.

Quelle prima e dopo dovresti già averle.

Link al commento
Condividi su altri siti

flavio.dallara

Si le ho. In effetti doveva essere un problema di codifica del file perchè ho fatto un cp del file openhab rinominandolo e così ora funziona...

forse nel controllare i percorsi mi era scappato un salva sul mac e così poi non funzionava... boo... poco importa.

Link al commento
Condividi su altri siti

Niente di più facile... per tagliare la testa al toro

ricordo che ho preparato una macchina con ubuntu

e editavo i file da li.

 

Anche i file di configurazione sono un pò delicati.

Andrebbero editati sempre con Designer oppure,

se sei in vena di sperimentare, puoi utilizzare la

webapp habmin.

 

L'accesso è da browser e con un indirizzo del tipo...

http://192.168.0.250:8080/habmin/index.html

Ovviamente ha vantaggi e svantaggi.

Link al commento
Condividi su altri siti

flavio.dallara

chiedo consiglio...prendendo come esempio questo schema 

 

Schermata 2016-07-27 alle 22.47.34.png

 

ho configurato in openhab i seguenti items:

 

Dimmer Luce_ingresso "Luce Disimpegno" {homeplc="RW:2003.0.8"}

Switch Luce_ext_DX "Luce giardino DX" {homeplc="MX:400.2"} (400.2 è la variabile OB_LUCE_EXT_DX)

Switch Luce_ext_SX "Luce giardino SX" {homeplc="MX:400.3"} (400.3 è la variabile OB_LUCE_EXT_SX)

 

L'impianto è configurato per utilizzare la logica locale mixata con quella del plc. Ovvero sia il dimmer che i pulsanti possono funzionare anche senza Homeplc.

 

Partendo dal dimmer funziona regolarmente ma non si aggiorna la variabile se uso il pulsante. è questo il caso dove devo utilizzare una rule per aggiornare lo stato?

Oppure devo utilizzare la libreria dimmer come già fatto per il DALI. In questo caso devo far transitare anche il pulsante dal programma ladder? 

 

Con gli switch invece mi trovo ad aver configurato nella logica locale del modulo le uscite come bistabili. Così facendo ad ogni pressione del pulsante associato all'ingresso accendo e spengo la luce. Così configurate anche i due switch di openhab seguono la stessa logica... ovvero devo attivarlo e poi disattivarlo per accendere la luce. e di nuovo attivarlo e disattivarlo per spegnerela.. Ovviamente la lampadina in openhab non rispecchia lo stato della luce.

 

Come devo affrontare il problema?

Link al commento
Condividi su altri siti

Partiamo dagli switch.

Ti serve innanzitutto uno Switch virtuale...

Switch Luce_ext_DX_Virt "Luce giardino DX"

In una rule rilevi quando questo switch viene comandato...

rule "Luce Ext DX OnOff"
	when Item Luce_ext_DX_Virt received command
	then 
		Luce_ext_DX.sendCommand(ON)
		Luce_ext_DX.sendCommand(OFF)
end

Nella sitemap ora metti Luce_ext_DX_Virt e non Luce_ext_DX.

A questo punto ad ogni cambiamento di stato dello switch virtuale

vengono inviati due comandi alla risorsa %MX400.2 e

avviene l'attivazione/disattivazione del bistabile sul modulo.

 

Manca però l'aggiornamento dello stato dello switch virtuale in modo da

seguire lo stato del relè fisico.

Ti occorre inserire un Contact tra gli Item e una nuova rule...

Contact Rele_Luce_ext_DX {homeplc="QX:5.12"}

rule "Update Luce Ext DX OnOff"
	when Item Rele_Luce_ext_DX_Virt changed
	then 
	if (Rele_Luce_ext_DX.state == OPEN) {
		Luce_ext_DX_Virt.postUpdate(ON)
	} else {
		Luce_ext_DX_Virt.postUpdate(OFF)
	}
end

NB. Mi sembra che per i Contact lo stato OPEN corrisponda allo stato ON per gli Switch

Se funziona al contrario è sufficiente che scrivi CLOSED.

 

Prova a vedere se funziona così?!

Link al commento
Condividi su altri siti

flavio.dallara

Il dimmer in questione è il 4 canali barra DIN mi pare che il codice sia ESXD4...

Oggi se riesco provo quelle rule... non sono riuscito ancora a trovare un po' di tempo... :toobad:

Link al commento
Condividi su altri siti

Allora... per il dimmer potresti considerare le informazioni contenute

nei seguenti registri di input:

- Canale 1 in regolazione (indirizzo fisico - bit 11)

- Canale 2 in regolazione (indirizzo fisico - bit 12)

- Canale 3 in regolazione (indirizzo fisico - bit 13)

- Canale 4 in regolazione (indirizzo fisico - bit 14)

- Feedback Canale 1 (primo indirizzo esteso - byte basso)

- Feedback Canale 2 (primo indirizzo esteso - byte alto)

- Feedback Canale 3 (secondo indirizzo esteso - byte basso)

- Feedback Canale 4 (secondo indirizzo esteso - byte alto)

 

Ti occorre che l'Item Luce_ingresso venga aggiornato allo stato

raggiunto dal dimmer reale. Questo aggiornamento puoi farlo 

avvenire quando il bit di regolazione passa da on a off

e a quel punto copiare il valore di feedback nell'Item.

 

Contact Reg_Luce_ingresso {homeplc="IX:??.11"}  // ad esempio
Dimmer Feedback_Luce_ingresso {homeplc="RW:??.0.8"}  // ad esempio

rule "Update Luce Ingresso"
	when Item Reg_Luce_ingresso changed to CLOSED
	then 
	Luce_ingresso.postUpdate(Feedback_Luce_ingresso.state)
end

 

 

 

Link al commento
Condividi su altri siti

flavio.dallara

stavo tentando anch'io la stessa strada... ancora però non ero riuscito ad infilare bene la programmazione...Grazie!

Link al commento
Condividi su altri siti

flavio.dallara

ho iniziato dal dimmer. ovviamente qualcosa non va... il mio dimmer ha indirizzamento 40 quindi dovrebbe essere:

 

%IX21.11 canale 1 in regolazione

%IX21.12 canale 2 in regolazione

%IX21.13 canale 3 in regolazione

%IX21.14 canale 4 in regolazione

già qui se monitorizzo questi ingressi in ladder non cambiano nel momento di regolazione del dimmer... forse se il modulo è impostato come logica locale non ritornano al plc 

questi dati? 

Per il feedback invece non mi tornano gli indirizzamenti: dalla tabella risorse non vedo quanto mi riportavi nel post precedente. 

Forse per leggere il feedback devo leggere l'uscita? però in questo caso dovrebbe essere byte alto e basso dell'indirizzo fisico e byte alto e basso del primo indirizzo esteso. 

( %MW221 e %MW5753)

 

Link al commento
Condividi su altri siti

Io ho utilizzato l'ultimo file di aiuto di LadderHome per ricavare le risorse.

I registri di uscita dovrebbero essere utilizzati per i comandi.

In effetti potresti provare a impostarlo come controllo da programma + locale.

Così come potresti verificare di aver aggiornato il firmware del dimmer.

 

Io sto utilizzando un dimmer 2 canali in questo modo e funziona.

 

 

 

Link al commento
Condividi su altri siti

flavio.dallara

Ok! proverò ad aggiornare il firmware del dimmer e poi riprovo. 

Per gli indirizzi nel dimmer due canali in effetti è più chiaro... 

questo è quello che riporta l'ultimo file di aiuto nella tabella risorse del dimmer 4 canali:

Quote

Primo Registro (indirizzamento esteso)

Feedback Canale 1

 

Byte Low  Terzo Canale 0-100%

Feedback Canale 2

                       

Byte High  Quarto Canale 0-100%

Secondo Registro (indirizzamento esteso)

Feedback Canale 3              

0

UP/DOWN Canale 1

1

UP/DOWN Canale 2

2

UP/DOWN Canale 3

3

UP/DOWN Canale 4

4

UP               Canale 1

5

DOWN       Canale 1

6

UP               Canale 2

7

DOWN       Canale 2

Feedback Canale 4

8

UP               Canale 3

9

DOWN       Canale 3

10

UP               Canale 4

11

DOWN       Canale 4

 

secondo te come andrebbe interpretata? 

nel canale 1 e 2 la specifica dei byte alto e basso sono nella tabella uscite. in ingresso non c'è nulla.

mentre nel canale 3 e 4 in ingresso ci sono i comandi UP/DOWN.

 

Link al commento
Condividi su altri siti

flavio.dallara

inoltre adesso che vedo nel feedback canale 1 c'è poi scritto byte low terzo canale... non capisco... forse sono io che non riesco ad interpretarla...

Ok è nelle uscite... forse serve per pilotare il dimmer ma non si comandava utilizzando il registro successivo?  ( Nel mio caso %MW222 )

 

Quote

mentre per i canali 3 e 4 si scrive la word successiva a quella dell'indirizzo del modulo stesso ( preso dall'ultimo file di aiuto ladder )

 

Link al commento
Condividi su altri siti

Se guardi bene la prima riga mostra che la tabella del dimmer è divisa

in due colonne principali: INPUT e OUTPUT.

La colonna di INPUT e poi divisa ulteriormente in descrizione e dettaglio.

Cosa che non è stato fatto per la colonna di OUTPUT.

Nel caso di "Save Hplc Scenary Value" però la descrizione si riferisce

ai bit di output.

 

Almeno io la interpreto così.

I byte di uscita li uso per regolare direttamente il dimmer.

 

Non è che hai disabilitato l'indirizzamento parallelo.

- %MX4988.0 = False HPLC utilizza l'area ad indirizzamento parallelo

- %MX4988.0 = True  HPLC utilizza l'area ad indirizzamento principale

 

Se ricordo bene hai dovuto aggiornare il controller perchè la tua

è una installazione abbastanza datata. Forse utilizzava ancora

il primo metodo di indirizzamento e allora ti trascura le 

aree estese. 

 

 

Link al commento
Condividi su altri siti

flavio.dallara

No le aree estese sono abilitate, forse al massimo è il firmware del dimmer che è sicuramente datato... ora appena trovo un minuto apro il quadro elettrico ( dato che non si può aggiornare tramite Homeplc :toobad:... sarebbe una funzione da implementare se qualcuno della NET ascolta..) e lo aggiorno. Sicuramente è proprio il dimmer che non gestisce gli indirizzamenti estesi con quel firmware.

 

Il sistema HomePLC è veramente un gran bel sistema..l'ho provato in vari impianti e devo dire che da veramente delle belle soddisfazioni.. però un appunto che posso fare alla NET è che a volte la documentazione è un po' confusionaria...

in questo caso ad esempio il dimmer si pilota utilizzando il registro fisico e quello esteso per i canali 3 e 4.. ma nella documentazione c'è scritto ancora di utilizzare il vecchio indirizzamento ( quello che utilizzava la word successiva )..ma così come questo ho trovato altre contraddizioni nel file di aiuto.

Link al commento
Condividi su altri siti

del_user_56966
Quote

ma nella documentazione c'è scritto ancora di utilizzare il vecchio indirizzamento 

 

ma che revisione utilizzi?

che non vedo più sull'_Help quell'indirizzamento è da almeno 5 anni?

Link al commento
Condividi su altri siti

flavio.dallara

Ho effettuato l'upgrade firmware alla v.1.16 del dimmer.. ora da ABS sembra che funzionino anche gli indirizzamenti estesi.

Sono incappato però in un altro problemino.. guardando dalla configurazione del modulo da ABS il dimmer è limitato al max al 34% di luminosità..

infatti anche da pulsante non mi porta a più del 33%... Ora... io provo ad impostare 100% nel limite massimo ma quando premo il pulsante SEND mi torna nuovamente a 34..

come mai?

Link al commento
Condividi su altri siti

flavio.dallara

Sempre in tema dimmer...ma se imposto il dimmer come Mix del modulo + logica PLC abilitate come si comporta?

Gli ingressi vengono utilizzati per regolare i rispettivi canali e posso comunque comandare il dimmer dal programma?

 

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