HM-MOD-EM-8 Analoge Spannungseingänge

Begonnen von borney, 01 Oktober 2014, 17:01:36

Vorheriges Thema - Nächstes Thema

MEitelwein

Also beim Rumprobieren mit msgScdPosA/B/C/D habe ich bisher keine Veränderung am Verhalten entdecken können.

MEitelwein

Jetzt tut sich was: Wenn man das Register 92 auf 0x21 oder 0x22 setzt, bekommt man den toggle Modus. Jede ansteigende und abfallende Flanke erzeugt ein Short Signal. Dabei wird die eventFilterTime berücksichtigt, d.h. innerhalb der Filtertime wird nicht neu gesendet.

Ist das Register 92 auf Null gesetzt, wird nchts mehr gesendet.

martinp876

Die register msg steuern welche msg zu welchem ereigniss gesendet wird. Man kann bei einem 3state sensor festlegen, wann 0,100 oder 200 gesendet wird. Das sind 0,50 oder100 %
Damit kann man offen bei fenster zu schicken. Wenn man will

Das register 92 solltest du ggf als bitfeld betrachten. 21=00010101bin, 22=00010110
Probiere es also mit 1, 2 oder 0. Es koennen natuerlich auch gruppen der 8 bits eine kombination bilden. Sehr aufwendige tests ohne anhaltspunkt
Wenn du ergebnisse hast kann ich versuchen es auf andere register zu mappen um die idee von hm zu erraten

Pfriemler

Die Woche ist die Hölle bei mir, danke an MEitelwein. Wie war das 0x92 default? Ansonsten kann ich Martin nur recht geben, das Durchprobieren ist nervig. ledMode geht schon mal prima übrigens.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

MEitelwein

Auf Bitmap bin ich auch gleich gekommen - sonst wäre ich wohl jetzt noch am Probieren...

Der default war 0x23 = 00100011

Der Schaltmodus verändert sich über die 2 niedrigsten Bits (0x21 und 0x22) in den Fensterkontaktmodus - scheinbar ohne Unterschied. Mehr habe ich allerdings auch nicht ausprobiert.


Pfriemler

#20
MEitelwein, kannst Du mir mal kurz flüstern, wie Du an das default gekommen bist? Ich saß gestern abend in meinem täglichen 10-Minuten-Slot für FHEM (von denen ich in acht endlich den %$"&§!"!-RT-DN gepairt bekommen habe) wie der Ochs vor den Befehlen und verstand nur Bahnhof. Stichpunkte reichen.

Ich muss nochmal der Vollständigkeit nachhaken:
1. Das Register setzt Du bei einem Channel? D.h. der Modus kann pro Kanal festgelegt werden? Das wäre ja toll.
2. Hast Du jetzt wirklich den Fensterkontaktmodus oder einen Toggle? Es gibt ja bereits ein Schalter-Interfaces von eQ3, welches bei einer Schaltezustandsänderung ein Short sendet (etwa um damit Schalter zu toggeln) - ideal um bestehende Wechselschalter in eine HM-basierte getoggelte Wechselschaltung umzusetzen. Daneben aber auch das Schalterinterface, welches bei Zustandsänderung den Zustand sendet. Das könnte der Unterschied zwischen 0x21 und 0x22 sein. Guckst Du mal auf die Antworten, oder sind die wirklich gleich?
x23 wäre dann der Remote-Modus (aktiver Eingang sendet Shorts und Longs).
Schaltet auch x20 den Kanal ganz ab?

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Ralf9

Ich habe noch ein wenig rumprobiert .

Der Modus kann pro Kanal festgelegt werden.
0x21 ist der Togglemodus
0x22 ist der Fensterkontaktmodus

Wenn ein Peering auf ein virtuelles Gerät gemacht wird, dann läßt sich der Zustand der Kontakte auch im Fhem darstellen und abfragen.

set xy_01 regBulk 1: 92:22

define virt_Btn_01 CUL_HM ABC123
set virt_Btn_01 virtual 2

set xy_01 peerChan 1 virt_Btn_01 single

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

AHA1805

Zitat von: Ralf9 am 12 Oktober 2014, 02:04:39
Ich habe noch ein wenig rumprobiert .

Der Modus kann pro Kanal festgelegt werden.
0x21 ist der Togglemodus
0x22 ist der Fensterkontaktmodus

Wenn ein Peering auf ein virtuelles Gerät gemacht wird, dann läßt sich der Zustand der Kontakte auch im Fhem darstellen und abfragen.

set xy_01 regBulk 1: 92:22

define virt_Btn_01 CUL_HM ABC123
set virt_Btn_01 virtual 2

set xy_01 peerChan 1 virt_Btn_01 single

Gruß Ralf

Hallo Ralf,

Dass habt ihr ja schnell geknackt  :D
Bei wird aber nichts an dem virtuellen Button angezeigt.
Es steht auf beiden Kanälen ein ???.

An was könnte das liegen?

SCHÖNE GRÜßE
Hannes
AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Ralf9

Zitat von: AHA1805 am 13 Oktober 2014, 21:36:11
Bei wird aber nichts an dem virtuellen Button angezeigt.
Es steht auf beiden Kanälen ein ???.

evtl stimmen beim peerChan die Namen der channel nicht.
set name_channel_a peerChan 1 virt_Btn_01_Btn1 single


Da beim Fensterkontaktmodus nur die Zustandsänderungen übertragen werden und nicht der Zustand, ist er für mich nur eingeschränkt brauchbar.
Wenn z.B. während eines Stromausfalls oder während fhem nicht läuft, sich der Zustand eines Kontaktes ändert, stimmt in fhem die Anzeige des Zustandes nicht mehr.

Ich möchte gerne in Fhem den "virtActState" umschalten können. Ich habe es durch anpassen des webCmd versucht:
"attr virt_Btn_01_Btn1 webCmd on:off"
Damit funktioniert es aber nicht. Beim klicken auf on oder off kommt nur eine Fehlermeldung.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Pfriemler

Zitat von: Ralf9 am 13 Oktober 2014, 23:11:51
evtl stimmen beim peerChan die Namen der channel nicht.
set name_channel_a peerChan 1 virt_Btn_01_Btn1 single

Wieso 1? Das peeren eines Remote-Channels (nicht einer Tastengruppe des Remote-Devices) funktioniert doch mit 0, also set name_channel_a peerChan 0 virt_Btn_01_Btn1 single ...?

Folgende neue Erkenntnisse:
1. Das peeren eines Channels vom EM-8 mit einem virtuellen Button einer vccu klappt prima (bei mir also bspw. set EM8_Btn_08 peerChan 0 vccu_Btn8). Die Quittung kommt, allerdings zeigt der Button nichts außer "???". Das ist bei mir also genauso.
Wenn ich aber mit einem virtuellen Button eines HM-Dummys peere, zeigt der so eine Art Zustand (ON bzw. OFF). Ich glaub, das ist so normal.

2. Ich habe zur besseren Untersuchung der Register-92-Modi mal mit einem Kanal eines Re-8 gepeert.
Der richtige Befehl zum Setzen des Registers ist übrigens bswp. "set EM8_Btn_08 regBulk 1 92:23" (also kein : nach der 1, sondern zwischen 92 und dem zu schreibenden Wert)
Gesetzt, CLOSE ist der geschlossene und OPEN der offene Tastereingang, dann passiert folgendes
- 23: CLOSE kurz, OPEN: (wie eine kurze Tastenbetätigung): sendet "short", Aktor toggelt bei jeder Aktion
- 23: CLOSE lang (lange Tastenbetätigung): sendet "long", aber - obacht! - Aktor toggelt selbständig hin und her.
         Zu untersuchen wäre, ob das die Standardaktion des Aktors bei "long" ist. Der o.g. virtuelle Button eines HM-Dummies läuft übrigens parallel dazu ein/aus
- 22: CLOSE bzw. OPEN (beliebige Dauer): Beim Zustandswechsel sendet der EM-8 nur kurz, der Aktor toggelt bei jedem Telegramm.
- 21: CLOSE bzw. OPEN (beliebige Dauer): Auch hier sendet der EM-8 nur kurz, der Aktor toggelt aber nur beim Öffnen-Telegramm.

Wie Ralf9 also sagt, wird's so kein echtes Kontaktinterface. 22 wäre dann ein Schalterinterface (jede Schaltzustandsänderung ändert), 21 eher ein Tasterinterface - oder s.u.. Der Unterschied zum Remote-Modus (23) wäre dann, dass die Tastenbetätigung beliebig lang sein darf, ohne dass der EM-8 "long"s sendet. Sinnvollerweise würde man dann aber einen Öffner-Taster nehmen müssen (also normally closed), damit das Aktionstelegramm zu Beginn der Betätigung (also beim Öffnen des Kontakts) gesendet wird und nicht erst beim Loslassen.

Wieso der EM-8 dann überhaupt was sendet, wenn der Aktor nicht reagiert, verstehe ich jetzt noch nicht. Idee: Wenn ich bspw. einen Neigungssensor mit einem Aktor peere, dann toggelt der Aktor genauso wie in der (21): Erst ein vollständiges Kippeln schaltet den Aktor. Der Neigungssensor überträgt bei seinen Telegrammen Werte - wenn man den Aktor nun auf die Werte reagieren lässt, bekommt man eine echte Zustandsspiegelung. Details kann man in http://forum.fhem.de/index.php/topic,21848.msg153108.html#msg153108 nachlesen.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Pfriemler

Mode (21),
mitgeloggt ein Schließen und ein Öffnen des Eingangs. Beim 2. Telegramm toggelt der Aktor. 312F44 der EM-8, 2C05AE ist der Aktor.

Zitat2014.10.21 11:58:54 1: HM-Logging gestartet...
2014.10.21 11:59:00.287 0: HMLAN_Parse: HMLAN1 R:E312F44   stat:0000 t:4E179164 d:FF r:FFD1     m:EB B441 312F44 2C05AE 087300
2014.10.21 11:59:00.566 0: HMLAN_Parse: HMLAN1 R:E2C05AE   stat:0000 t:4E1791E4 d:FF r:FFD4     m:EB 8002 2C05AE 312F44 0108000000
2014.10.21 11:59:02.900 0: HMLAN_Send:  HMLAN1 I:K
2014.10.21 11:59:02.910 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:HEQ0136973 d:141B13 O:1411AB t:4E179BA8 IDcnt:0020
2014.10.21 11:59:04.296 0: HMLAN_Parse: HMLAN1 R:E312F44   stat:0000 t:4E17A110 d:FF r:FFD4     m:EC B441 312F44 2C05AE 0874C8
2014.10.21 11:59:04.456 0: HMLAN_Parse: HMLAN1 R:E2C05AE   stat:0000 t:4E17A18F d:FF r:FFD4     m:EC 8002 2C05AE 312F44 0108C80000
2014.10.21 11:59:07.892 1: HM-Logging gestoppt

Wenn ich das richtig interpretiere, sendet der EM-8 in diesem Modus einen Wert 0 beim Schließen und 200 (hex C8) beim Öffnen des Kontaktes. 73 und 74 ist ein fortlaufender Zähler?
Das wäre dann unser Kontaktinterface. Wenn Martin uns das Device (später) mal so programmiert wie bswp. den Neigungssensor, hätten wir eine direkt auszuwertende Zustandsmeldung.

Im Modus (22):
Zitat2014.10.21 12:06:45 1: HM-Logging gestartet...
2014.10.21 12:06:50.866 0: HMLAN_Parse: HMLAN1 R:E312F44   stat:0000 t:4E1EBFD8 d:FF r:FFD2     m:F1 B440 312F44 2C05AE 0877
2014.10.21 12:06:51.116 0: HMLAN_Parse: HMLAN1 R:E2C05AE   stat:0000 t:4E1EC058 d:FF r:FFD4     m:F1 8002 2C05AE 312F44 0108C80000
2014.10.21 12:06:54.776 0: HMLAN_Parse: HMLAN1 R:E312F44   stat:0000 t:4E1ECF1F d:FF r:FFD4     m:F2 B440 312F44 2C05AE 0878
2014.10.21 12:06:54.938 0: HMLAN_Parse: HMLAN1 R:E2C05AE   stat:0000 t:4E1ECF9E d:FF r:FFD4     m:F2 8002 2C05AE 312F44 0108000000
2014.10.21 12:06:56.735 1: HM-Logging gestoppt
sendet der EM-8 nur 08, gefolgt vom Counter, aber ohne Wert.

Nun habe ich den EM-8 wieder auf (21) gesetzt und am Aktor Re-8 testweise das Register shCtOff (für diesen peer) von "geLo" auf "ltLo" gesetzt, siehe den Neigungssensorthread aus dem vorigen Post.
Und siehe da: Ganz egal, wie ich händisch den Aktor toggle: Beim Schließen des Tastereingangs geht er an, beim Öffnen aus.
Fertig ist das Kontaktinterface. Martin, was brauchst Du noch?


"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Pfriemler

#26
Zitat von: Pfriemler am 21 Oktober 2014, 12:21:43
Martin, was brauchst Du noch?
Das war natürlich nicht bös oder drängelnd gemeint. Ich meinte damit, dass wir jetzt die wesentlichen Zustände zusammen haben - falls noch was fehlt, müssten wir's noch nachtesten. Natürlich könnte man nun noch auf die Unterstützung durch die CCU2 warten und die Einstellungen, die diese dann vornimmt, mal mitsniffen - aber für den Anfang...
Ein Versuch der Zusammenfassung:
Liste 1 Register 92 Wert:
23: Tastereingänge wie Buttons einer Fernbedienung, Verhalten ähnlich HM-PBI4-FM - nein, stimmt noch nicht ganz, das Toggeln des Re-8 muss ich noch untersuchen.
22: Anschluss von Schaltern, Verhalten ähnlich HM-SWI-3-FM (?)
21: Anschluss von Schaltern, Verhalten wie HM-SCI-3-FM (?), bzw. Neigungssensor, Tür/Fensterkontakte, ...

Sendet das SCI-3-FM auch Trigger mit Werten? Jawohl, so ist es. Hier für Kanal 1 eines SCI-3 (in den obigen Beispielen zum EM-8 hatte ich Kanal 8 verwendet)
Zitat
2014.10.21 15:48:54.891 0: HMLAN_Parse: HMLAN1 R:E2447B5   stat:0000 t:4EEA15AD d:FF r:FFC4     m:57 A441 2447B5 1411AB 010A00
2014.10.21 15:48:57.390 0: HMLAN_Parse: HMLAN1 R:E2447B5   stat:0000 t:4EEA1F71 d:FF r:FFC4     m:58 A441 2447B5 1411AB 010BC8


Außerdem können SCI-3-FM & Co doch ab Werk auch einen Aktor so anlernen, dass er den Zustand spiegelt... wie man das in FHEM peert, weiß ich gerade nicht, geht aber bestimmt auch schon.

Genialerweise müsste FHEM dann nach Kenntnis des Registers die entsprechenden Internals und Attribute anbieten, auf jeden Fall wäre aber "setMode" oder ähnliches mit Klarschriftangabe statt der Registermanipulation hilfreich.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Pfriemler

@Martin als Mod: Ist es möglich, den Betreff des Freds mal zu ändern - das mit den analogen Eingängen war ja ein Missverständnis des TE.

Also ich kann Entwarnung geben für value 23: ungepeert fängt FHEM ganz normale Long X (heraufzählend) ab.
Mit dem Re-8 bleibt das seltsame Verhalten. Aber das ist hier offtopic.


Jetzt warten wir auf das Einbauen durch einen kompetenten FHEM-Programmierer, oder?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

martinp876

also lasst mich einmal zusammenfassen, was ich mitgeommen habe:
Mode 21 simuliert einen "sensor". der liefert zustände mit wie offen und zu in Form von 0 und 200 (100%). Was wann kommt kann man meist drehen. er sendet wahrscheinlich nur "short"

mode 22 ist dann ein typischer schalter. Der sendet keine Werte mit, sollte aber long und short können.

Also test: jeweils mit mode 21 und 22 einmal lange und kurz drücken (und loggen).

Das mit 23 habe ich nicht verstanden. Wie sehen die logs aus? ist da ein unterschied zu 21?

Ich vermute, dass nur Bit 0 zwischen "schalter" und "sensor" unterscheidet.

Pfriemler

#29
Danke für Meldung ... Jein ... also ich erklärs gern nochmal, wie ich es sehe:

ZitatMode 21 simuliert einen "sensor". der liefert zustände mit wie offen und zu in Form von 0 und 200 (100%). Was wann kommt kann man meist drehen. er sendet wahrscheinlich nur "short"

Genau. Kurze einmalige Telegramme bei jeder Zustandsänderung am Kontakt, wenn Du das meinst, allerdings mit einem Wert hintendran - erinnert mich stark an den SCI-3, der ganz offenbar in gleicher weise auch 0 (closed) bzw. 200 (open) sendet. Drehen brauchst Du da nix - die Auswertung wäre dann identisch zum SCI-3.

Zitatmode 22 ist dann ein typischer schalter. Der sendet keine Werte mit, sollte aber long und short können.
Nein, auch der sendet nur kurze Telegramme bei jeder Zustandsänderung, aber ohne Wert. Entspricht im Verhalten damit dem SWI-3, welches bei jeder Zustandsänderung ein "short" sendet - von eQ3 z.B. für Wechselschaltungen-Ersatz empfohlen - jede Schalterzustandsänderung kann somit einen Aktor toggeln, aber der Zustand des Schalters wird nicht übertragen.

ZitatDas mit 23 habe ich nicht verstanden. Wie sehen die logs aus? ist da ein unterschied zu 21?
23, also der Defaultwert, ist eine klassische Fernbedienung - nur in diesem Modus sendet das Teil wiederholte Trigger, und wenn ich das richtig verstanden habe, long-Trigger, inkl. einem LongRelease, wenn der Kontakt wieder geöffnet wird.

"Kontakt" bezieht sich dabei allerdings auf die Tastereingänge des Moduls (für Taster gegen GND) - das Anlegen einer Spannung an die Spannungseingänge ist schaltungs- und auswertungstechnisch identisch zum Schließen des Tasterkontakts, siehe ganz anfangs im Fred.

ZitatIch vermute, dass nur Bit 0 zwischen "schalter" und "sensor" unterscheidet.
Nö. Binär ausgedrückt (die Bedeutung der ersten Bits ist unklar, haben wir nicht untersucht)
(000101)01 0010 0001 = Schalterzustand
(000101)10 0010 0010 = Schaltersensor
(000101)11 0010 0011 = Fernbedienung/Taster
(edit: fälschlich dezimal > binär statt hex > binär, korrigiert ... )
Logs habe ich in den Beiträgen zuvor und auch in Thread zum Re-8 gepostet (das ist aber eine andere Baustelle).
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."