[Modul] ZigBee-DeCONZ

Das mit den Plugs ist seltsam. Bei der einen kommt regelmäßig diese Nachricht:
TXT: 23.09.2022, 08:47:28 | RECEIVED | {„attr“:{„id“:„3“,„lastannounced“:„2022-09-23T06:47:28Z“,„lastseen“:„2022-09-23T06:47Z“,„manufacturername“:„innr“,„modelid“:„SP 220“,„name“:„Steckdose Patrick“,„swversion“:„2.03.10“,„type“:„On/Off plug-in unit“,„uniqueid“:„c4:98:86:00:00:0f:78:6e-01“},„e“:„changed“,„id“:„3“,„r“:„lights“,„t“:„event“,„uniqueid“:„c4:98:86:00:00:0f:78:6e-01“}
TXT: 23.09.2022, 08:47:28 | RECEIVED | {„e“:„changed“,„id“:„3“,„r“:„lights“,„state“:{„alert“:null,„on“:false,„reachable“:true},„t“:„event“,„uniqueid“:„c4:98:86:00:00:0f:78:6e-01“}

während bei der zweiten nur der Teil ankommt:
TXT: 23.09.2022, 08:47:19 | RECEIVED | {„attr“:{„id“:„4“,„lastannounced“:„2022-09-23T06:23:56Z“,„lastseen“:„2022-09-23T06:47Z“,„manufacturername“:„innr“,„modelid“:„SP 220“,„name“:„Steckdose Flur UG“,„swversion“:„2.03.10“,„type“:„On/Off plug-in unit“,„uniqueid“:„c4:98:86:00:00:0f:62:a7-01“},„e“:„changed“,„id“:„4“,„r“:„lights“,„t“:„event“,„uniqueid“:„c4:98:86:00:00:0f:62:a7-01“}

Fehlermeldungen bekomme ich keine.

Dass die erreichbar-Variable von DeConz als „true“ zurückgemeldet wird ohne dass das Thermostat tatsächlich reagiert hat ist allerdings schon fragwürdig, denn die Information ist definitiv falsch.

Grüße Frank

ja, da gebe ich dir Recht. Wenn ein Gerät offline ist, dann muss es auch so gekennzeichnet werden.

Da kann ich aber vom Modul aus keinen Einfluss nehmen.
Bei den Innr-Plugs gibt es ggf. eine Einstellung, ob sie regelmäßig ihren Status senden oder nicht. Was gibt da die Bedienungsanleitung her?

Grüße
Jürgen

also ich habe in den Einstellung gesucht, aber nichts gefunden. Ich habe über DeConz beide Konfigurationen verglichen und sie waren identisch. Im Dump sind ja wirklich viele Received-Einträge… kommen die wirklich von den Geräten oder liefert DeConz immer nur den Status, den es sekbst abgespeichert hat oder ist das der letzte Stand, der irgendwann mal reingekommen ist ?

Grüße Frank

ich gehe davon aus, dass DeCONZ immer das weitergibt, was vom Gerät reinkommt. Das ist aber auch nur meine Vermutung.
Probiere doch mal den nicht sendenden Innr von DeCONZ abzumelden, zurückzusetzen und dann neu anzulernen. Ggf. hilft das.
Grüße
Jürgen

Nach meinen letzten Tests bin ich nicht davon überzeugt, dass DeConz tatsächlich live den aktuellen Status überhaupt abfragt. Ich habe mir mal den Spaß gemacht und habe die Steckdose vom Strom getrennt und dann über IPS ein- und ausgeschaltet. Selbst in der WebAPP vom DeConz wurden die Steckdosen gem. den Aktionen vom IPS als ein- bzw. ausgeschaltet angezeigt. Im IPS wurden die Schaltvorgänge natürlich auch angezeigt. Nach meinem Verständnis müssten die Plugs sofort mit dem Schaltversuch als offline angezeigt werden. Das verstärkt meine Vermutung, dass DeConz überhaupt nicht auf eine Antwort des Geräts wartet. Das ist schon enttäuschend … oder mache ich hier etwas falsch oder habe ich ein Verständnis von einem Zigbee-Gateway ?
Grüße Frank

Hallo zusammen,
hat jemand ein Danfoss-Thermostat eingebunden ? Habe mir mal zwei Stück testweise besorgt, allerdings reagiert es nicht auf Änderungsanforderungen der Solltemperatur bzw. es kommt ein Fehler zurück:

TXT: 28.09.2022, 17:33:42 | Sended | {„DataID“:„{875B91AC-45F1-9757-30F6-BF71445B2BDB}“,„Buffer“:„{"command":"sensors/04:cd:15:ff:fe:37:0e:60","method":"GET","data":""}“}
TXT: 28.09.2022, 17:33:42 | Response | [{„error“:{„address“:„/sensors/04:cd:15:ff:fe:37:0e:60“,„description“:„resource, /sensors/04:cd:15:ff:fe:37:0e:60, not available“,„type“:3}}]

Bei einem eurotronic Spirit funktioniert das gleiche:

TXT: 28.09.2022, 17:38:46 | Sended | {„DataID“:„{875B91AC-45F1-9757-30F6-BF71445B2BDB}“,„Buffer“:„{"command":"sensors/00:15:8d:00:01:92:ca:52-01-0201","method":"GET","data":""}“}
TXT: 28.09.2022, 17:38:46 | Response | {„config“:{„battery“:100,„displayflipped“:false,„heatsetpoint“:800,„locked“:false,„mode“:„auto“,„offset“:0,„on“:true,„reachable“:true},„ep“:1,„etag“:„fd84e6203a848bfaee4e0a31cbd1170d“,„lastannounced“:„2022-09-27T17:01:01Z“,„lastseen“:„2022-09-28T15:33Z“,„manufacturername“:„Eurotronic“,„modelid“:„SPZB0001“,„name“:„Heizung Patrick“,„state“:{„lastupdated“:„2022-09-28T15:33:57.463“,„on“:false,„temperature“:1954,„valve“:0},„swversion“:„18181120“,„type“:„ZHAThermostat“,„uniqueid“:„00:15:8d:00:01:92:ca:52-01-0201“}
TXT: 28.09.2022, 17:38:46 | Sended | {„DataID“:„{875B91AC-45F1-9757-30F6-BF71445B2BDB}“,„Buffer“:„{"command":"sensors/00:15:8d:00:01:92:ca:52-01-0201/config","method":"PUT","data":"{\"heatsetpoint\":1200}"}“}

Über die API (Postman) funktioniert es.

Hat jemand eine Idee ?

Grüße Frank

Hallo Frank,
das sieht mir nach 2 unterschiedlichen Vorgehensweisen deinerseits aus. Beim Danfoss-Thermostat arbeitest du über die Hauptadresse

04:cd:15:ff:fe:37:0e:60

während du beim eurotronic die Subadresse

00:15:8d:00:01:92:ca:52-01-0201

ansprichst. Arbeitest du mit Geräte zusammenfassen? Wenn ja, dann mal bitte die Instanz löschen und danach ohne die Zusammenfassung neu erstellen. Funktioniert dann die Kommunikation?
Grüße
Jürgen

ja, du hast vollkommen recht - bei den eurotronics wird der hintere Teil vom Konfigurator bereitgestellt, bei den Danfoss fehlt das -01-0201. Habe das Thermostat frisch angelegt, aber die Subadresse wird weiterhin ignoriert.
Wenn ich das in der Instanz anhänge, funktionieren auch die Befehle. Unschön, dass der Kofigurator dann ständig ein neues Gerät ohne Sektor-Kennung weiterhin anbietet …
In der API über den Postman wird beim Get-Befehl die Subadresse mitgeliefert.

Grüße Frank

Schicke mir mal per PN einen dump vom Konfigurator nachdem du auf Aktualisieren gedrückt hast.
Grüße
Jürgen

soll ich vorher die angelegten Instanzen vom Danfoss löschen ?

nein, das ist nicht erforderlich

Hi,

ich hab mal kurz ne doofe Frage zu Schaltern, ich hab aktuell zwei verschiedene im Einsatz (Ikea Tradfri der mit dem I/O und einen Sonoff SNZB-04).
Bei beiden passiert, wenn man sie drückt, nichts.
Beim loslassen wird dann im IPS der Wert „loslassen“ aktualisiert, soweit so gut. Die Frage ist, schicken die Schalter generell kein „gedrückt“?

@Silberstreifen
Wäre es möglich, wie bei deinem Enocean Modul, eine optionale Doppelklick Erkennung einzubauen (für Schalter die es von sich aus nicht können wie der Tradfri)?

Grüße
Rolf

Sagen wir mal so, DeCONZ schickt kein gedrückt. Was der Schalter an DeCONZ liefert kann ich nicht sagen.

Bei Enocean kann ich die Rohdaten auswerten und damit die Doppelklick-Erkennung bauen. DeCONZ liefert keine Rohdaten, sondern nur das Ergebnis. Von daher lässt sich da auch nichts bauen.
Grüße
Jürgen

Ok, Schade.
Trotzdem Danke :slight_smile:

Grüße

V3.19 - Fix: GetConfig, SetConfig - Neu: GetDeviceInfo

Durch Zufall ist mir aufgefallen, dass seit der Umstellung auf zusammengefasste Geräte die GetConfig und die SetConfig nicht mehr sauber funktionieren. Dieser Fehler wurde jetzt behoben.

Darüber hinaus kann man jetzt mit dem Befehl

Z2D_GetDeviceInfo(12345);

sich alle Informationen zu einem Gerät inklusive aller Untergeräte anzeigen lassen. Die Informationen werden als JSON-String zurückgegeben. Ggf. kann das bei der Beurteilung des Gerätezustands helfen.

Diese Version ist wie immer zunächst als Beta im Module-Store erhältlich.

Grüße
Jürgen

1 „Gefällt mir“

Ich hoffe, ich stelle mich nicht zu ungeschickt an … aber um die einzelnen Tabellenwerte auszuwerten, muss man doch die Geräte-ID kennen - kann man die irgendwie aus der Instanz oder direkt aus dem JSON-String auslesen auslesen ?
Grüße Frank

für welche Tabellenwerte brauchst du die Geräte-ID?

$Hauptinstanz = IPS_GetParent($_IPS['SELF']);
$etagID = IPS_GetObjectIDByName('etag', $Hauptinstanz);
$Onlineinstanz = IPS_GetObjectIDByName('erreichbar', $Hauptinstanz);

$Werte = json_decode(Z2D_GetDeviceInfo($Hauptinstanz),true);

//print_r($Werte);

$etag = ($Werte['54:ef:44:10:00:4e:4e:cc-01-0406']['etag']);
SetValueBoolean($Onlineinstanz, false); 
SetValueString($etagID,$etag);

Um einen gezielten Zugriff auf die Variable etag zu haben, muss man das ja von oben her qualifizieren.

Array
(
    [54:ef:44:10:00:4e:4e:cc-01-0406] => Array
        (
            [config] => Array
                (
                    [battery] => 100
                    [duration] => 5
                    [ledindication] => 
                    [on] => 1
                    [reachable] => 1
                    [sensitivity] => 2
                )

            [ep] => 1
            [etag] => 1e50583363e8c0056ebb530651913059
            [lastannounced] => 
            [lastseen] => 2022-10-09T07:07Z
            [manufacturername] => LUMI
            [modelid] => lumi.motion.ac02
            [name] => Bewegungsmelder Flur EG1
            [state] => Array
                (
                    [lastupdated] => 2022-10-09T07:07:42.423
                    [presence] => 
                )

            [swversion] => 0.0.0_0005
            [type] => ZHAPresence
            [uniqueid] => 54:ef:44:10:00:4e:4e:cc-01-0406
        )

Ja das ist korrekt. Die Tabellenwerte gelten ja auch nur für diese Geräte-ID.
Wie du die Geräte-ID/den Key mit php auslesen kannst, zeigt Beispiel 1 ganz anschaulich.

1 „Gefällt mir“

Hallo @Silberstreifen.
Ich habe seit einigen Wochen HUE Motionsensoren im Einsatz und hatte, wie viele vor mir, anfänglich folgendes Problem: Bewegung erkannt → Licht geht an, Bewegung nicht erkannt (Zeit ist abgelaufen) → Licht geht aus, erneute Bewegung im Melderbereich wird nicht erkannt. Erst nach ca. 60 sek. reagiert der Melder wieder.
Hier ist eine Veränderung vom Parameter „Tageslichtempfindlichkeit“ notwendig, der von HUE bei Auslieferung voreingestellt ist. Den Parameter kann man mit der Phoscon-App nicht verstellen und auch in deinem Modul gibt es keine Variable dazu. Abhilfe schafft erst einmal eine zusätzliche App wie z.B. Hue Essential, wo man diesen Parameter einstellen kann. Die Deconz-API müsste das also bereitstellen.
Ist es möglich, in deinem Deconz-Modul diesen Parameter als Variable mit aufzunehmen? Die Bewegungsempfindlichkeit ist ja auch schon vorhanden.
Gruss
Udo