HomeMatic Funk-Statusanzeige - HM-Dis-WM55

Begonnen von Roaster, 14 November 2014, 20:33:48

Vorheriges Thema - Nächstes Thema

Bytechanger

Ok, danke.

So ganz schließt sich für mich noch nicht der Kreis. Wie geht es dann weiter?
In der Wiki steht u.a.

set dis_01 displayWM short  line1 e:{myLineA(1,0)}
set dis_01 displayWM short  line2 e:{myLineA(2,0)}
...


Dort werden die Inhalte ins Display geschrieben, habe ich verstanden.

Aber irgendwie muss ja der Tastendruck von dem Display->virtuelle Button-> richtigen Text setzten (Wiki)
Beim durchforsten des Forums schrieb jemand, dass die

set HM-Dis-WM55_Dis_01 peerBulk <fhemID>01
set HM-Dis-WM55_Dis_02 peerBulk <fhemID>01

fhemID hier die HMID des IOs ist, also der vccu ???


Greets

Byte

CoolTux

Zitat von: Bytechanger am 29 Januar 2016, 14:38:10
Ok, danke.

So ganz schließt sich für mich noch nicht der Kreis. Wie geht es dann weiter?
In der Wiki steht u.a.

set dis_01 displayWM short  line1 e:{myLineA(1,0)}
set dis_01 displayWM short  line2 e:{myLineA(2,0)}
...


Der "richtige Text" befindet sich in der entsprechenden myUtils. Schau mal rein.
Dort werden die Inhalte ins Display geschrieben, habe ich verstanden.

Aber irgendwie muss ja der Tastendruck von dem Display->virtuelle Button-> richtigen Text setzten (Wiki)
Beim durchforsten des Forums schrieb jemand, dass die

set HM-Dis-WM55_Dis_01 peerBulk <fhemID>01
set HM-Dis-WM55_Dis_02 peerBulk <fhemID>01

fhemID hier die HMID des IOs ist, also der vccu ???


Greets

Byte
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bytechanger

Wie gesagt, ich bin Anfänger, was FHEM angeht. Mir geht es um das Beispiel des variablen Textes, der Readings ausliest.

Für mein Verständnis, ist es so, dass mit der Codezeile:
set dis_01 displayWM short  line1 e:{myLineA(1,0)} ?
dem "dis Button1" für den short druck eine Textzeile zugewiesen wird?
Wann findet die Zuweisung statt (also das Auslesen der Readings)? Einmalig beim Set?

Was mich zur Frage bringt, was konkret bewirkt diese Zeile
define userCfg notify global:INITIALIZED include fhem_user.cfg
Wird fhem_user.cfg einmalig beim Systemstart eingebunden und die
set dis_01 displayWM short  line1 e:{myLineA(1,0)}
ausgeführt?

Ich stelle mir vor, beim Tastendruck alle aktuellen Zustände anzuzeigen, z.B. Außentempereatur, Fenster offen, Alarmanlage scharf, ...


Gruß

Byte

CoolTux

Oh man da habe ich ja so gar nicht auf gepasst. Also was ich eigentlich schreiben wollte
Der "richtige Text" befindet sich in der entsprechenden myUtils. Schau mal rein.

Du solltest eine angelegt haben oder eine vorhandene erweitert haben. Darin steht dann bei welchen Tastendruck welcher Text angezeigt werden soll.


Die Zuweisung erfolgt bei jedem Tastendruck. Es werden dann entsprechend die Werte welche ausgelesen wurden gesendet.



2. Die Zeile ist dafür da um nach jedem Neustart die Variable Zeilen in die Register zu schreiben.


Genau dafür ist es gedacht. Du kannst 6 Zeilen an Zustände pro Tasterdruck darstellen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bytechanger

Ok, habe ich gesehen. Danke.

Aber, da nach der Erklärung die Tasten NUR beim Systemstart mit Text befüllt werden, muss ich zusätzlich zum Wiki,
ein notify auf die Virtuellen (mit dem Display gepeerten) Tasten setzen und beim push (long/short) jeweils den entsprechenden Code
set dis_01 displayWM short  line1 e:{myLineA(1,0)} im Notify der Taste ausführen, richtig?!

Ich möchte ja bei jedem Druck auf die Taste die aktuellen Readings anzeigen.

Kurz: zusätzlich notify auf virtuelle Taste -> set dis_01 displayWM short  line1 e:{myLineA(1,0)}

Bitte korrigieren, wenn ich falsch liege...



(wenn es so ist, dann macht dieses Vorgehen doch eher Sinn, als bei jedem Ändern eines Zustandes, zB. Fenster offen, den set durchzuführen).


Greets

Byte

CoolTux

Du füllst einmalig pro Start die Register der echten Tasterkanäle mit einer Variablen. Danach füllt die Perlsub in der myUtils die Variablen mit Echtzeitdaten wenn es ausgeführt wird.

Probiere es einfach aus. Dann versteht man es besser.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bytechanger

#351
Ok, dann teste ich mal.

Ich wollte es nur voll verstehen. Ich programmiere in anderen Sprachen und bin natürlich an der Synthax interessiert.

Vermutlich liegt das "Geheimnis" an dieser Art der Übergabe
e:{myLineA(1,0)} 
was bedeutet denn e: {..} ?

Habe die fhem_User.cfg angepasst zum testen,
set InfoDisplay_Dis_01 displayWM  short  line1 test green noIcon
Aber es passiert nichts (fhem.cfg neu gestartet)...

Beim manuellen Setzen über die Befehlszeile kann ich manchmal den Text setzten, manchmal aber nicht, dann bleibt der alte Text....

CoolTux

Hast Du einfach mal bei den set Commands geschaut ob es dieses displayWM gibt?
Schau nicht ins Device sondern in die Channel. Denn da soll das ganze ja eingelegt werden.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bytechanger

So, habe etwas rumprobiert und auch über die Kommandozeile gearbeitet.
Das geht.
Bei mir scheint das Problem zu sein, dass die "fhem_User.cfg" beim Start nicht über die
fhem.cfg -> "define userCfg notify global:INITIALIZED include fhem_user.cfg"
geladen wird?!
Oder da läuft irgendetwas schief.

Ich habe in der fhem_User.cfg eine Zeile stehen:
set InfoDisplay_Dis_01 displayWM short line1 e:{teste()}

Gebe ich diese Zeile so in im WEB in der Befehlszeile ein, läuft es wie gewünscht.
Speichere ich die fhem.cfg und erzwinge damit ein Neuladen, bleibt das Display schwarz !

Das LOG sagt auch nichts aus (oder müsste hier der include von fhem_user.cfg stehen?


2016.01.31 10:11:59 1: Including fhem.cfg
2016.01.31 10:11:59 3: telnetPort: port 7072 opened
2016.01.31 10:11:59 3: WEB: port 8083 opened
2016.01.31 10:11:59 3: WEBphone: port 8084 opened
2016.01.31 10:11:59 3: WEBtablet: port 8085 opened
2016.01.31 10:11:59 2: eventTypes: loaded 97 events from ./log/eventTypes.txt
2016.01.31 10:11:59 3: Opening CUL0 device /dev/ttyACM0
2016.01.31 10:11:59 3: Setting CUL0 serial parameters to 9600,8,N,1
2016.01.31 10:11:59 3: CUL0 device opened
2016.01.31 10:11:59 3: CUL0: Possible commands: BbCFiAZNkGMKUYRTVWXefmLltux
2016.01.31 10:11:59 2: Switched CUL0 rfmode to HomeMatic
2016.01.31 10:12:01 1: Including ./log/fhem.save
2016.01.31 10:12:04 3: [Alarmanlage V2.5] Added hidden room 'AlarmRoom' to WEB_172.30.90.45_34702


Greets Byte

CoolTux

define userCfg notify global:INITIALIZED include fhem_user.cfg

Das ist ein normales Notify, welches ausgelöst wird wenn FHEM fertig neugestartet oder gestartet wurde.
Wenn Du save drücktst oben links beim Webinterface passiert nichts ausser das die fhem.cfg komplett neu geschrieben wird.
Du musst FHEM schon Neustarts. "shutdown restart" Dann sollte Deine eine Zeile auch geschrieben werden wenn FHEM fertig mit starten ist.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

frank

ZitatIch habe in der fhem_User.cfg eine Zeile stehen:
set InfoDisplay_Dis_01 displayWM short line1 e:{teste()}
in fhem.cfg lassen sich keine set cmds speichern.
ob der workaround über include funktioniert, ist daher fraglich. deine erfahrungen sprechen dagegen. baue das set cmd doch direkt ins notify.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoolTux

Hallo Frank,

Das geht so. Er hat sich an das Wiki gehalten. Ich habe es genau so und es geht.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bytechanger

Vielen Dank für Eure Hilfe,

ich habe den Fehler jetzt gefunden.
1. die fhem_user.cfg liegt im Verz. ./FHEM daher habe ich das include angepasst auf include ./FHEM/fhem_user.cfg !!
2. nach einem Neustart ging es !

Vielen Dank nochmal!

Gruß

Byte

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

In normalen include passen keine cmds rein.
Ich nutze ein usercfg welches ich, als include , per notify nach dem init einbinde. Da kann man cmds ausführen nach Herzenslust.