Hallo,
ich bin auf der Suche nach einem Aktor für die Hutschiene mit Zigbee Funk.
Hat jemand schon Erfahrungen mit ubisys? Kann ich das über meinen cc2531 Stick einbinden?
https://www.smarthome-store.de/de/ubisys-home-automation/leistungsschalter-s2r.html (https://www.smarthome-store.de/de/ubisys-home-automation/leistungsschalter-s2r.html)
Schön wäre die Einbindung des 2 Kanal Aktors (kostet in der Summe dann nur die Hälfte).
Würde mir jemand helfen ein passendes Template zu erstellen?
Danke & Gruß
hier wäre schon mal die Unterputz Version
https://www.zigbee2mqtt.io/devices/S2.html (https://www.zigbee2mqtt.io/devices/S2.html)
Dann sollte doch die Hutschienen Version auch passen oder?
Es wäre naheliegend, dass dieselben Infos an den zigbee2mqtt-Dienst gesendet werden... Aber Garantien wirst du keine bekommen, schon gleich nicht hier (diese Art Info findet man viel eher beim zigbee2mqtt-Projekt).
Was die Einbindung in FHEM angeht, scheint der Hutschienenaktor über zigbee2mqtt dieselben Infos zu liefern wie das Xiaomi-Dingens. Das dortige attrTemplate müßte also eigentlich auch dafür passen...
Danke für die Rückmeldung.
Laut Hersteller email von heute unterscheiden sich Leistungsschalter S2 und S2R nur in ihrer Form. Technik und Software wäre identisch. Ich habe mir einen zum testen bestellt. Ich probier mal das Xiaomi Dingens aus und gebe Bescheid was passiert.
So, jetzt kann ich endlich Rückmeldung geben. (Erst gab es Probleme bei der Zustellung ....)
Das Gerät hat sich ohne Probleme an meinem Zigbee Netzwerk angemeldet. Ich habe dann folgendes template angewandt "zigbee2mqtt_2channel_split" und ein zweites Device wurde angelegt. Beide Kanäle lassen sich wie gewünscht schalten. Jedoch wenn über den externen Taster geschaltet wird, gibt es keine Rückmeldung über Zigbee, dass sich der Zustand geändert hat.
Das kann dann an vielem liegen...
MQTT2_DEVICE liegt dabei am Ende der Informationskette und ist daher ein eher schlechter Einstiegspunkt zur Problemanalyse. Wenn du im FHEM-Device keine Infos (ggf. unter anderen Readingnamen) bekommst, ich würde darauf tippen, dass das Gerät zwar zigbee-Messages sendet, aber der zigbee2mqtt-Dienst diese (noch) nicht auswertet. Bitte in letzterem Fall die Anleitung bei zigbee2mqtt zur Unterstützung neuer Geräte befolgen.
Hier noch ein paar Details
Channel 1
Readings
associatedWith. MQTT2_MQTT2 2019-12-20 11:44:11
availability ON 2019-12-20 14:45:18
linkquality 147 2019-12-20 14:46:35
power -1 2019-12-20 14:46:35
state OFF 2019-12-20 14:46:35
Ch1
defmod MQTT2_zigbee_0x001fee0000002325 MQTT2_DEVICE zigbee_0x001fee0000002325
attr MQTT2_zigbee_0x001fee0000002325 IODev MQTT2
attr MQTT2_zigbee_0x001fee0000002325 alias ubisys Kanal1
attr MQTT2_zigbee_0x001fee0000002325 comment Channel 1 for MQTT2_zigbee_0x001fee0000002325, see also MQTT2_zigbee_0x001fee0000002325_CH2
attr MQTT2_zigbee_0x001fee0000002325 eventMap { dev=>{ON=>'on',OFF=>'off'} }
attr MQTT2_zigbee_0x001fee0000002325 jsonMap state:availability state_l1:state state_l2:0
attr MQTT2_zigbee_0x001fee0000002325 model zigbee2mqtt_2channel_split
attr MQTT2_zigbee_0x001fee0000002325 readingList zigbee2mqtt/0x001fee0000002325:.* { json2nameValue($EVENT,'',$JSONMAP) }\
zigbee2mqtt/0x001fee0000002325/l1/set:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x001fee0000002325/l2/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_0x001fee0000002325 room MQTT2_DEVICE
attr MQTT2_zigbee_0x001fee0000002325 setList on:noArg zigbee2mqtt/0x001fee0000002325/l1/set {"state":"ON"}\
off:noArg zigbee2mqtt/0x001fee0000002325/l1/set {"state":"OFF"}\
attr MQTT2_zigbee_0x001fee0000002325 setStateList on off
setstate MQTT2_zigbee_0x001fee0000002325 off
setstate MQTT2_zigbee_0x001fee0000002325 2019-12-20 11:44:11 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x001fee0000002325 2019-12-20 14:45:34 availability ON
setstate MQTT2_zigbee_0x001fee0000002325 2019-12-20 14:45:34 linkquality 147
setstate MQTT2_zigbee_0x001fee0000002325 2019-12-20 14:45:34 power -1
setstate MQTT2_zigbee_0x001fee0000002325 2019-12-20 14:45:34 state OFF
Readings von Ch2 sehen etwas anders aus:
Readings
associatedWith MQTT2_MQTT2 2019-12-20 11:54:32
energy -3006701.7630000003 2019-12-20 11:56:18
linkquality 141 2019-12-20 11:56:18
power -1 2019-12-20 11:56:18
state ON 2019-12-20 11:56:18
state_l1 OFF 2019-12-20 11:56:18
state_l2 OFF 2019-12-20 11:56:18
ein paar Kleinigkeiten passen noch nicht:
Wenn ich den Strom abstelle, ändert sich an availability nichts
(das reading war auch ohne änderungen der configuration.yaml bei den readings, bei dem China dings ist keine Info in den Readings aufgetaucht.)
https://forum.fhem.de/index.php?topic=105998.msg1003794#msg1003794 (https://forum.fhem.de/index.php?topic=105998.msg1003794#msg1003794)
wenn ich ch1 schalte, ändert sich bei den readings bei Ch2 state_l1 oder state_l2 nichts
wenn ich ch1 schalte, ändert sich bei den readings bei Ch2 state_l1 oder state_l2 auch nichts
Im großen und Ganzen ist der Aktor für mich so OK, wenn jemand noch was verbessern möchte versuche ich gerne zu helfen.
Da hängt noch was schräg...
Zum einen irritiert mich, dass beide "associatedWith" auf den Server verweisen und nicht wechselseitig aufeinander. Zum anderen dürfte es die meisten Readings am Kanal 2 gar nicht mehr geben bzw. diese sollten anders heißen.
Ist FHEM aktuell?
Hast du das template über set MQTT2_zigbee_0x001fee0000002325 attrTemplate zigbee2mqtt_2channel_split
angewendet, oder das irgendwie händisch zusammengeklöppelt?
(Und wo kommen die "set"-Einträge in der readingList her? Schaltung von einem anderen MQTT-Client aus?)
Zu availability: War die in timeout angegebene Zeit abgelaufen? Ggf.: hast du den Service nach Änderung der yaml neu gestartet? (Immerhin kommt schon mal ein "ON").
Bei FHEM habe ich diese Woche ein update gemacht (und neu gestartet)
template kommt aus vorlage (Selber machen übersteigt z.Z meine Fähigkeiten)
in der /opt/zigbee2mqtt/data/config.yaml steht nur sehr wenig drin:
homeassistent: false
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: `mqtt://localhost`
serial:
port: /dev/ttyACM0
devices:
´"nummer"`:
friendly_name: "nummer"
retain: false
Ohne definierten timeout keine timeout-Meldung...
(soll ich den link nochmal suchen?!?)
Den Rest muß ich mir ansehen, aber CH2 ist nicht logisch.
Schau mal durch, ob dir bei
list TYPE=MQTT2_DEVICE readingList
doppelte oder irgendwie seltsame Einträge auffallen. Evtl. suchst du am falschen Device, das aus dem template sollte MQTT2_zigbee_0x001fee0000002325_CH2 heißen und u.a. auch eine jsonMap haben.
ich habe folgendes ergänzt
advanced:
availability_timeout: 0
die Stelle sollte egal sein, oder?
nach Neustart ist das availability reading immer auf ON
hier das Ergebnis von
list TYPE=MQTT2_DEVICE readingList
MQTT2_MQTT2 zigbee2mqtt/bridge/state:.* state
zigbee2mqtt/bridge/config/devices:.* {}
zigbee2mqtt/bridge/config/log_level:.* log_level
zigbee2mqtt/bridge/config/permit_join:.* permit_join
zigbee2mqtt/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }
zigbee2mqtt/bridge/log:.*\"type\".\"devices\".\"message\".* devices
zigbee2mqtt/bridge/log:.* log
zigbee2mqtt/bridge/networkmap:.* {}
zigbee2mqtt/bridge/networkmap/graphviz:.* graphviz
zigbee2mqtt/bridge/networkmap/raw:.* raw
zigbee2mqtt/bridge/config:.* { json2nameValue($EVENT) }
MQTT2:MQTT2_zigbee_0x7cb03eaa0a06c3d2:.* MQTT2_zigbee_0x7cb03eaa0a06c3d2
MQTT2_zigbee_0x00124b001d436c47 zigbee2mqtt/0x00124b001d436c47:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x00124b001d436c47/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x00158d0003f46d15 zigbee2mqtt/0x00158d0003f46d15:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x00158d0003f46d15/l1/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x00158d0003f46d15/l2/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x00158d0003f46d15_CH2 zigbee2mqtt/0x00158d0003f46d15:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x00158d0003f46d15/l1/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x00158d0003f46d15/l2/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x001fee000000229e zigbee2mqtt/0x001fee000000229e:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x001fee000000229e/l2/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x001fee000000229e/l1/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x001fee000000229e_CH2 zigbee2mqtt/0x001fee000000229e:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x001fee000000229e/l2/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x001fee000000229e/l1/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x001fee0000002325 zigbee2mqtt/0x001fee0000002325:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x001fee0000002325/l1/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x001fee0000002325/l2/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x001fee0000002325_CH2 zigbee2mqtt/0x001fee0000002325:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x001fee0000002325/l1/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x001fee0000002325/l2/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa00ac067a zigbee2mqtt/0x7cb03eaa00ac067a:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa00ac15c6 zigbee2mqtt/0x7cb03eaa00ac15c6:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa00adce30 zigbee2mqtt/0x7cb03eaa00adce30:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa00af8bb0 zigbee2mqtt/0x7cb03eaa00af8bb0:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa00b09cb3 zigbee2mqtt/0x7cb03eaa00b09cb3:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a0148a6 zigbee2mqtt/0x7cb03eaa0a0148a6:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a0148a6/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a01af76 zigbee2mqtt/0x7cb03eaa0a01af76:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a020832 zigbee2mqtt/0x7cb03eaa0a020832:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a020832/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a02eb04 zigbee2mqtt/0x7cb03eaa0a02eb04:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a02eb04/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a0359b9 zigbee2mqtt/0x7cb03eaa0a0359b9:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a0359b9/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a0486a6 zigbee2mqtt/0x7cb03eaa0a0486a6:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a0486a6/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a059ca4 zigbee2mqtt/0x7cb03eaa0a059ca4:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a05a342 zigbee2mqtt/0x7cb03eaa0a05a342:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a05a342/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a05a827 zigbee2mqtt/0x7cb03eaa0a05a827:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a05a858 zigbee2mqtt/0x7cb03eaa0a05a858:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a05ca0d zigbee2mqtt/0x7cb03eaa0a05ca0d:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x7cb03eaa0a06c3d2 zigbee2mqtt/0x7cb03eaa0a06c3d2:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x7cb03eaa0a06c3d2/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f64bb zigbee2mqtt/0x84182600000f64bb:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f884d zigbee2mqtt/0x84182600000f884d:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f8d5d zigbee2mqtt/0x84182600000f8d5d:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f8daf zigbee2mqtt/0x84182600000f8daf:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f8f43 zigbee2mqtt/0x84182600000f8f43:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000f99ee zigbee2mqtt/0x84182600000f99ee:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x84182600000f99ee/set:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000fa2c6 zigbee2mqtt/0x84182600000fa2c6:.* { json2nameValue($EVENT) }
MQTT2_zigbee_0x84182600000ff884 zigbee2mqtt/0x84182600000ff884:.* { json2nameValue($EVENT) }
zigbee2mqtt/0x84182600000ff884/set:.* { json2nameValue($EVENT) }
SORRY,
für Ch2 habe ich was Falsches kopiert. Hier ist das richtige reading:
Readings
associatedWith MQTT2_MQTT2 2019-12-20 11:44:11
state OFF 2019-12-20 15:49:32
(Das andere reading war von einem anderen Aktor)
...in dem link stand genau über dieser Option ein Hinweis, dass "0" gleichbedeutend ist mit "ausschalten"...
60 wäre vielleicht zielführender ;) .
(Und ich würde es da einsortieren, wo es in der Anleitung auch zu finden ist, einfach zur Sicherheit...)
Irgendeine Erklärung für die "set"-Einträge? (Edit, jetzt habe ich einen Verdacht: Die kommen vermutlich daher, dass du MQTT2_CLIENT nutzt, oder? Und hast kein "General-Bridge-bridgeRegexp"-Device am Start? => Bitte das Wiki zu MQTT2_CLIENT lesen und ein "Sortierdevice" einrichten! Dann sollte man autocreate an den einzelnen zigbee2mqtt-MQTT2-Devices ausschalten, wenn die readingList (ohne "set") steht, nehme ich mal an.)
Und dann solltest du die CID's klarziehen, heute erscheint vermutlich bei zu vielen dieselbe:
list TYPE=MQTT2_DEVICE CID
In jedem Fall bitte alles ändern, bei dem da heute der CLIENT-Name steht!
Kann jetzt erst mal nicht weiterhelfen, vermutlich bekommst du "Geisterreadings" über die "set"-Einträge in readingList.
[OT]
Es macht mich etwas unzufrieden, wenn ich - wie zu timeout - Dinge mehrfach schreiben muß oder die Anleitung übersetzen; ist es sehr viel verlangt, das als Erwartung von mir an "die user" (hier konkret an Dich) zu adressieren?
(Kann schon mal sein, dass was untergeht; passiert mir auch. Aber hier sind die Dinge doch noch recht übersichtlich und in unmittelbarem räumlichen Zusammenhang, und zur Erinnerung: ich habe diese Hardware nicht, ich nutze nicht mal mehr den zigbee2mqtt-Dienst, sondern versuche das nur so zu supporten, dass es für "die user" (am Ende) einfacher ist...)
[/OT]
habe 30 eingetragen --> geht net
ja, MQTT2_CLIENT
hab auch MQTT2_GeneralBridge
Ich bin eigentlich mit der Grundfunktion zufrieden. Ich dachte, ich helfe das template zu verbessern und gebe hierzu die Infos, welche die Hardware ausspuckt.
(Ich bin sehr dankbar, dass du mir bei einigen anderen Problemen geholfen hast)
Hmm, das mit timeout hatte ich "damals" nur kurz angetestet, allerdings mit einer tint-Lampe. Da ging das, aber die Geräte sind nicht zwingend alle gleich, vielleicht akzeptiert zigbee2mqtt das Ding nicht als Router, keine Ahnung.
Seltsam ist, dass das mit den Schaltern nicht klappt, aber das kann auch ein Problem bei zigbee2mqtt sein; was dort nicht ausgewertet wird, kann nicht im FHEM-Device landen...
Das mit den "set"-Einträgen/autocreate solltest du bereinigen, in den attrTemplate's baue ich das auch bei Gelegenheit dann ein (betrifft alle schaltbaren zigbee2mqtt-Geräte), das hilft tatsächlich auch weiter.
Vielleicht hilft es dir weiter, wenn ich zurückmelde, dass es mir so vorkommt, als wäre bei deinen CID's noch was nicht in Ordnung, ist aber mehr so ein Bauchgefühl, kann täuschen.
Na ja, jetzt bin ich dann jedenfalls eine Zeitlang ziemlich offline, dann sehen wir weiter...