HM-PB-6-WM55 <-FHEM-> HM-LC-Sw4-DR: "Echte" Rückmeldung an Taster?

Begonnen von M_I_B, 21 November 2015, 22:59:44

Vorheriges Thema - Nächstes Thema

M_I_B

@CoolTux
Ja, genau das war meine Vorlage. Zum hier verwendeten 6er gibt es auch eine Seite, die ich mitverwendet habe

@Frank
zu 1. Jo, habe ich aber nicht angelegt ?!?
zu 2. ... nach dem erneuten peeren bei mir auch

Zitatget hminfo configCheck
? Wo gehört denn das hin?

frank

hminfo ist ein extra modul. erst definieren. zb:

define hminfo HMinfo

edit: zu 1. das attr im device würde ich mal löschen.
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

Zitat
Peering: set EG_FL_6CH_CH1 peerChan 0 Virt_Taster dual set

Hast Du mal single statt dual probiert? Und dann am Taster noch mal den korrekten Button drücken
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

M_I_B

... ok, habe ich gemacht. Dann hat mir FHEM in die fhem.conf diverse Zeilen geschrieben:
define hminfo HMinfo
attr hminfo sumERROR battery:ok,sabotageError:off,powerError:ok,overload:off,overheat:off,reduced:off,motorErr:ok,error:none,uncertain:[no|yes],smoke_detect:none,cover:closed
attr hminfo sumStatus battery,sabotageError,powerError,motor
attr hminfo webCmd update:protoEvents short:rssi:peerXref:configCheck:models

Ich hoffe, das muss so?!? Nach Neustart aber kennt der das Kommando immer noch nicht:
Unknown command hminfo, try help.

Ansonsten habe ich jetzt das peering komplett gelöscht (mehrfach zur Sicherheit), den virtuellen Aktor komplett aus der CFG gelöscht, ebenso wie die Zeilen mit den IDs aus der 6fach-Taster-Definition. Nach Neustart und Tastendruck am Sensor (das Ganze mehrfach wiederholt) schreibt mit fhem immer wieder zumindest in einen Teil der Tasten die IDs, die LED kommt immer wieder mit rot bei Taste 1-3 (eine dazu gekommen).

Irgendwie ist nun alles verquer und ich komme nicht mehr zum Ausgangszustand zurück, um von vorne zu beginnen... Ausser vielleicht den Sensor komplett löschen und auf Factory resetten...

frank

ZitatIch hoffe, das muss so?!? Nach Neustart aber kennt der das Kommando immer noch nicht:
das passt so. vielleicht kein save gemacht und die definition ist wieder weg.
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

M_I_B

... ich gebe auch  >:( >:( >:(
Habe jetzt den HM-PB-6 auf Factory gesetzt und in der CFG gelöscht. rereadcfg und neu eingepflegt.
Anschließend über die GUI einen virtuellen Aktor erstell mit 3 Kanälen (je einen für 1/2, 3/4, 5/6) erstellt und die Tasten jeweils einzeln (auch dual probiert) gepeert wie folgt:
define VirtualDevice CUL_HM FFFFFF
set VirtualDevice virtual 3
rename VirtualDevice_Btn1 VirtualTaster1
rename VirtualDevice_Btn2 VirtualTaster2
rename VirtualDevice_Btn3 VirtualTaster3

set EG_FL_6CH_CH1 peerChan 0 VirtualTaster1 single set
set EG_FL_6CH_CH2 peerChan 0 VirtualTaster1 single set
set EG_FL_6CH_CH3 peerChan 0 VirtualTaster2 single set
set EG_FL_6CH_CH4 peerChan 0 VirtualTaster2 single set
set EG_FL_6CH_CH5 peerChan 0 VirtualTaster3 single set
set EG_FL_6CH_CH6 peerChan 0 VirtualTaster3 single set
set EG_FL_6CH getConfig

Anschließend einen Klick auf die Anlerntaste > blinkblinkblink...orange... grün. Anschliessend noch mal ein getConfig... geht nicht  :(

Taste 1,2 und 5 werden grün quittiert, die anderen Tasten nicht.

Wenn ich nach kurzer Zeit wieder über die GUI die einzelnen Tasten betrachte, stehen die peerIDs bei einigen Tasten wieder auf "00000000" und nicht auf "000000,FFFFFF02" z.b. Dann lösche ich das attr über die GUI speichere die config, lege eine neue peerID korrekt an, aber wenn ich dann wieder reinschaue, ist sie wieder falsch...

Es juckt FHEM auch nicht, wenn ich die CFG manuell per Notepad++ ändere und die Config neu einlese resp reboote.

Fragen:

1.
Gibt es eine Möglichkeit, alle je gesetzten peerings global zu löschen, notfalls durch löschen einer Datei? Denn irgendwo muss FHEM ja den quatsch herholen...

2.
Kann ich in der GUI im Eingabefeld auch eine Datei angeben, in der die Befehle stehen, so nach dem Schema "execute /opt/fhem/macro1.txt" ? Denn so wie es ausschaut, werden direkt eingegebene Befehle anders behandelt als jene aus der fhem.cfg

frank

irgendwie hast du das homematic system noch nicht wirklich verstanden.

also, alle configdaten (register, pairing und peering) werden im eeprom der devices gespeichert. in fhem existiert dann das abbild des realen gerätes, das device (eventull mit channels). die daten vom gerät und abbild müssen/sollten immer synchron sein. mit getconfig werden sämtliche daten ausgelesen und in fhem dargestellt. nur nach einem erfolgreichen getconfig kannst du sicher sein, dass die device daten den gerätedaten entsprechen. und nie vergessen save config klicken, damit die fhemdaten auch überleben.

beim peeren (peerchan) werden also befehle an 2 reale geräte gesendet. in deinem aktuellen fall ist ein gerät komplett virtuell. diese daten sind natürlich nur in fhem. alle relevanten daten sind im normalfall also im eeprom. deswegen kannst du nur mit reset alles löschen. werkseinstellungen. über hminfo gibt es auch möglichkeiten, komplette konfigurationen zu speichern/laden/restaurieren etc.
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

M_I_B

... das habe ich schon verstanden, aber genau da scheint das Problem her zu kommen.
Ich ändere die Daten für das peering und versuche über getConfig die Sache wieder syncron zu bekommen (save config versteht sich von selber). Aber irgendwann ändern sich aus mir unerfindlichen Gründen die Daten in FHEM und stimmen dann nicht mehr mit den Daten im EEPROM überein.
Wenn ich also ein peering herstelle zwischen einem Sensor und einem Virtuellen, dann aber dieses peering mit unset lösche, so sollte das doch ebenso im EEPROM gelöscht sein mit allen Daten, die zu diesem peering gehören. Und genau das scheint nicht zu funktionieren... Ich weiß nicht, wie ich es anders erklären soll, was hier vorgeht...

Zitatüber hminfo gibt es auch möglichkeiten, komplette konfigurationen zu speichern/laden/restaurieren etc.
Nett, wenn denn hminfo bei mir mal laufen würde (siehe ein paar Beiträge zuvor). Aber wenn, kann man dann diese runtergeladenen Konfigurationen editieren und zurückschreiben?

Morgen mache ich noch mal ein Factory bei dem Sensor und dann noch mal alles von vorne über vorbereitetes Macro

Ich geh jetzt schlafen; Faxen dicke für heute >:(

Bennemannc

Hallo,

ZitatWenn ich also ein peering herstelle zwischen einem Sensor und einem Virtuellen, dann aber dieses peering mit unset lösche, so sollte das doch ebenso im EEPROM gelöscht sein mit allen Daten, die zu diesem peering gehören.
Wenn Du danach am Gerät den Configknopf drückst - ja. Sonst bekommt das Gerät die Änderungen bzw den unset nicht mit. Der ist zunächst nur in fhem - liegt im Stapel der zu sendenden Informationen zum Gerät. Manche Geräte arbeiten so etwas automatisch ab (230V Geräte) manche Batteriegeräte fragen nach einem Senden von Informationen ob es etwas neues gibt und bei manchen (z.B. Fernbedienungen) muss die Configtaste am Gerät gedrückt werden.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

M_I_B

ZitatWenn Du danach am Gerät den Configknopf drückst - ja.
Ja, ist klar. Ich habe es nur nicht jedesmal explizit erwähnt. Ich gehe davon aus (steht nämlich nirgendwo), das nach Tippen der P-Taste die vielen kurzen orangen Blinks gefolgt von einem langen grünen Blink die erfolgreiche Übertragung signalisieren. Tippe ich danach nochmal auf die P-Taste, blinkt es nur noch grün. Und da die Farbe Grün für mich das SIgnal für "alles schön" ist (ausser bei entsprechender Gesichtsfarbe), sollte das passen.

BTW: HMinfo läuft jetzt bei mir!

define hminfo HMinfo funktioniert (bei mir) nicht,
define hm HMinfo
define hmi HMinfo
define hmin HMinfo
define hminf HMinfo
funktioniert.
Offensichtlich darf der Name der Definition nicht mit dem des Moduls überein stimmen. Ich habe es mehrfach ausprobiert; ist bei mir reproduzierbar.

Nun kann ich "Fehler" liefern:
configCheck done:

missing register list
    BU_TT_8CH: RegL_00:
    BU_TT_8CH_CH1: RegL_01:
    BU_TT_8CH_CH2: RegL_01:
    BU_TT_8CH_CH3: RegL_01:
    BU_TT_8CH_CH4: RegL_01:
    BU_TT_8CH_CH5: RegL_01:
    BU_TT_8CH_CH6: RegL_01:
    BU_TT_8CH_CH7: RegL_01:
    BU_TT_8CH_CH8: RegL_01:

peer list incomplete. Use getConfig to read it.
    incomplete: BU_TT_8CH_CH1:
    incomplete: BU_TT_8CH_CH2:
    incomplete: BU_TT_8CH_CH3:
    incomplete: BU_TT_8CH_CH4:
    incomplete: BU_TT_8CH_CH5:
    incomplete: BU_TT_8CH_CH6:
    incomplete: BU_TT_8CH_CH7:
    incomplete: BU_TT_8CH_CH8:
    incomplete: EG_FL_6CH_CH1:
    incomplete: EG_FL_6CH_CH2:
    incomplete: EG_FL_6CH_CH3:
    incomplete: EG_FL_6CH_CH4:
    incomplete: EG_FL_6CH_CH5:
    incomplete: EG_FL_6CH_CH6:
    incomplete: KG_ZS_4CH_CH1:
    incomplete: KG_ZS_4CH_CH2:
    incomplete: KG_ZS_4CH_CH3:
    incomplete: KG_ZS_4CH_CH4:

PairedTo missing/unknown
    BU_TT_8CH

PairedTo mismatch to IODev
    EG_FL_6CH paired:0x000000 IO attr: -.
    KG_ZS_4CH paired:0xF10000 IO attr: -.

templateCheck:


Warum die 8CH-Aktor-Platine nun auch stresst, weiß ich nicht. Ein getConfig ändert daran nix. Ich bekomme die Tage aber noch eine zweite 8CH-Aktor so wie das dazu passende Sensor-Pendant. Aber das hat ja nix mit den aktuellen Ärgernissen zu tun, im Gegensatz zu ...
PairedTo mismatch to IODev
    EG_FL_6CH paired:0x000000 IO attr: -.
    KG_ZS_4CH paired:0xF10000 IO attr: -.

EG_FL... ist der 6fach Taster HM-PB-6-WM55, KG_SZ... der 4fach Aktor für Hutschine HM-LC-Sw4-DR. Letzterer hat noch nie Probleme gemacht und funktioniert immer noch schmerzfrei.
Wie bekomme ich die Fehler weg?

M_I_B

... so, habe noch mal alles von NULL aus neu gemacht:

Alle Aktoren und Sensoren auf Faktory, Einträge dazu in der CFG gelöscht (weggesichert), 4fach Aktor gepeert, 8fach Aktor gepeert, 6fach Taster gepeert.

Dann der Reihe nach folgendes in die GUI eingegeben, wobei ich nach JEDEM Schritt "SAVE CONFIG" (SC) geklickt habe so wie nach jedem peerChan "SAVE CONFIG" (PT) und P-Taste am Sensor, was im Folgenden in eckigen Klammern dargestellt ist:

define VirtualDevice CUL_HM FFFFFF [SC]
set VirtualDevice virtual 3 [SC]
rename VirtualDevice_Btn1 VirtualTaster1 [SC]
rename VirtualDevice_Btn2 VirtualTaster2 [SC]
rename VirtualDevice_Btn3 VirtualTaster3 [SC]

set EG_FL_6CH_CH1 peerChan 0 VirtualTaster1 single set [SC] [PT]
set EG_FL_6CH_CH2 peerChan 0 VirtualTaster1 single set [SC] [PT]
set EG_FL_6CH_CH3 peerChan 0 VirtualTaster2 single set [SC] [PT]
set EG_FL_6CH_CH4 peerChan 0 VirtualTaster2 single set [SC] [PT]
set EG_FL_6CH_CH5 peerChan 0 VirtualTaster3 single set [SC] [PT]
set EG_FL_6CH_CH6 peerChan 0 VirtualTaster3 single set [SC] [PT]
set EG_FL_6CH getConfig [SC] [PT]
set EG_FL_6CH getConfig


Die ganze Nummer hat folgendes inder CFG angelegt:
define VirtualDevice CUL_HM FFFFFF
attr VirtualDevice IODev SCC2
attr VirtualDevice model virtual_3
attr VirtualDevice subType virtual
attr VirtualDevice webCmd virtual
define VirtualTaster1 CUL_HM FFFFFF01
attr VirtualTaster1 model virtual_3
attr VirtualTaster1 peerIDs 3AF9D601,3AF9D602,
attr VirtualTaster1 webCmd press short:press long
define VirtualTaster2 CUL_HM FFFFFF02
attr VirtualTaster2 model virtual_3
attr VirtualTaster2 peerIDs 3AF9D603,3AF9D604,
attr VirtualTaster2 webCmd press short:press long
define VirtualTaster3 CUL_HM FFFFFF03
attr VirtualTaster3 model virtual_3
attr VirtualTaster3 peerIDs 3AF9D605,3AF9D606,
attr VirtualTaster3 webCmd press short:press long

define ActionDetector CUL_HM 000000
attr ActionDetector event-on-change-reading .*
attr ActionDetector model ActionDetector


Taste 1 und 2 werden grün, alle anderen nicht (schalten aber den Aktor)
Ein Blick unter "Everything" zeigt, das lediglich die Tasten 1 und 2 an das VD melden:
ActionDetector  alive:0 dead:0 unkn:0 off:0
EG_FL_6CH_CH1  Short (to VirtualDevice)
EG_FL_6CH_CH2  Short (to VirtualDevice)
EG_FL_6CH_CH3  Short (to SCC2)
EG_FL_6CH_CH4  Short (to SCC2)
EG_FL_6CH_CH5  Short (to SCC2)
EG_FL_6CH_CH6  Short (to SCC2)
VirtualTaster1     OFF  press short  press long
VirtualTaster2     ???   press short  press long
VirtualTaster3     ???   press short  press long


Gehe ich jetzt auf eine der Tasten 3-6, lösche das attr fpr peerIDs [SC] und lege es neu an [SET][SC] und übernehme die Daten in den Taster [PT], wird das zwar korrekt in der fhem.cfg gelöscht und neu angelegt, aber ansonsten ändert sich nichts.

M_I_B

 8) 8) 8) 8) 8) 8)

Taste 3-6 peerChan unset [PT]
Taste 3-6 peerChan set [PT]

Und nun geht's auf einmal. Offensichtlich braucht das Teil massive Überredungskunst, um die config zu verdauen...

CoolTux

**frech** Oder etas Zeit und Geduld. Ist halt nicht das jüngste. Aber das kennst ja bestimmt     ;D **/frech**

Aber schön das es nun geht. Vorallem macht das ja auch einem selber wieder Mut.



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

M_I_B

... keine Bange ... Ich habe ein seeeeehhhr dickes Fell ;)

ZitatVorallem macht das ja auch einem selber wieder Mut.
Hmmm... Ich weiss nicht so recht, ob mir das Mut machen soll oder Angst. Denn wenn sich jedes HM-Teil so heftig rumzickt, dann bin ich in Jahren noch nicht durch mit der Sache. Ich kann im Moment auch ums Verrecken nicht nachvollziehen, warum z.B. die ersten beiden Tasten auf Anhieb das gemacht haben, was gefordert war, die anderen vier aber erst nach intensiver Bearbeitung mit der großen Hammer...

Kommen wir zur nächsten Aufgabe (DuckUndWech)?!
Anfänglich hatte ich das schon mal angesprochen, aber das ist ob des ganzen Ärgers erstmal in den Hintergrund gegangen und kommt nun wieder heraus gekrochen...
Wie muss ich es anstellen, wenn ich die Länge der Tastendrücke unterscheiden möchte? Damit möchte ich folgendes machen:

Wenn ich die jeweiligen Tasten nur kurz antippe, soll der Aktor stumpf EIN resp. AUS schalten.
Wenn ich die EIN Taste lang betätige, soll der Kanal für xy Sekunden eingeschaltet werden und dann ausgehen. Das soll auch gelten, wenn der Kanal schon per kurz eingeschaltet ist. Betätige ich wärend der Ablaufzeit die Taste ein zweites mal lang, sollen zur vorhandenen Zeit xy Sekunden addiert werden, betätige ich noch mal lang, ....
Beispiel:
kurz = an / 1te lang = an für 3 Minuten / 2te lang 15 Minuten / 3te lang 60 Minuten

Die AUS- Tasten sollten ähnlich funktionieren, allerdings rückwärts, um (versehentlich) zu hoch gesetzte Zeiten zu verringern

Also Aufgabe wäre demnach, erst einmal die Unterscheidung der Tastendrucklängen zu gestalten und davon abhängig dann die Zeiten zu generieren.

BTW: Ich hatte sowas mal in ähnlicher Art vor Jahren mit Bascom auf einem AVRtiny realisiert für ein Treppenhaus (Ein Taster, erster Druck 3min., wobei die Druckzeit keine Rolle spielt, 2ter Druck für mehr als 5sec = Basiszeit * 2, kurzer Druck wenn in Betrieb AUS nach 10sek. Warnung bei 9 und 3 sek durch kurzes Lichtflackern)

CoolTux

Also genau so wie Du es haben möchtest geht es meines Wissens in der Tat nur mittels FHEM und Perlcode. Das wirst Du über die angesprochenden Register nicht realisieren können. Da kannst Du nur sagen welcher Aktor auf welchen Kanal und welchem Druck reagieren soll. Also lang oder kurz halt.
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