Problem mit on, ON, off, OFF in DOIF

Begonnen von privat58, 10 August 2024, 09:40:28

Vorheriges Thema - Nächstes Thema

eisman

Hi,

das kann ich leider nicht sagen, oder vielleicht doch:

{
  "last_seen": "2024-08-11T13:11:12+02:00",
  "linkquality": 255,
  "power_on_behavior_l1": "previous",
  "state": "ON",
  "state_l1": "OFF",
  "state_l2": "OFF",
  "state_l3": "OFF"
}

zigbee2mqtt/OG/SO_0201

das ist was der MQTT-Explorer liefert...
(das ist eine von 3 Steckdosen)


Gerätename
SO_0201
Beschreibung
1- Fernseher/ Yamaha
2- Schrank
3- Kathrein
Zuletzt gesehen
1 minute ago
Verfügbarkeit
Online
Geräte-Typ
Router
Zigbee-Modell
TS011F
Zigbee-Hersteller
_TZ3000_1obwwnmq
Beschreibung
Silvercrest 3 gang switch, with 4 USB (EU, FR, CZ, BS)
Unterstützungsstatus
Unterstützt

IEEE-Addresse
0xbc33acfffec6d513
Netzwerk-Adresse
0x2717
Hersteller
Lidl
Modell
HG06338
Spannungsversorgung
Interview erfolgreich
Trifft zu

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

eisman

hi,

ich glaube ich weis es:

{
  "action": "off_l3",
  "last_seen": "2024-08-11T13:18:02+02:00",
  "linkquality": 216,
  "power_on_behavior_l1": "off",
  "state_l1": "ON",
  "state_l2": "OFF",
  "state_l3": "OFF"
}

das ist eine andere Steckdosenleiste, gleicher Bauart
hier wird kein state angezeigt

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

passibe

Zitat von: eisman am 11 August 2024, 13:15:20{
  "last_seen": "2024-08-11T13:11:12+02:00",
  "linkquality": 255,
  "power_on_behavior_l1": "previous",
  "state": "ON",
  "state_l1": "OFF",
  "state_l2": "OFF",
  "state_l3": "OFF"
}

Das Problem ist, dass dir json2nameValue($EVENT) jetzt das JSON-Objekt "state" in das state-Reading schreibt, obwohl du eigentlich ja nur z.B. state_l1 da haben willst.  (Und auch nur state_l1 von deiner überarbeiteten readingList auf lowercase gesetzt wird.)
Du müsstest das wohl über jsonmap anpassen, oder du stellst alles auf state_l1 um (oder l2, l3, je nach dem) und ignorierst das state-Reading.

eisman

#18
Zitat von: passibe am 11 August 2024, 13:22:48
Zitat von: eisman am 11 August 2024, 13:15:20{
  "last_seen": "2024-08-11T13:11:12+02:00",
  "linkquality": 255,
  "power_on_behavior_l1": "previous",
  "state": "ON",
  "state_l1": "OFF",
  "state_l2": "OFF",
  "state_l3": "OFF"
}

Das Problem ist, dass dir json2nameValue($EVENT) jetzt das JSON-Objekt "state" in das state-Reading schreibt, obwohl du eigentlich ja nur z.B. state_l1 da haben willst.  (Und auch nur state_l1 von deiner überarbeiteten readingList auf lowercase gesetzt wird.)
Du müsstest das wohl über jsonmap anpassen, oder du stellst alles auf state_l1 um (oder l2, l3, je nach dem) und ignorierst das state-Reading.
hi,

das ist alles umgestellt, es funktioniert soweit auch alles,
ich weis nur nicht wo das state herkommt.
es dürfte nicht vorhanden sein....
da es in Z2M nicht vorhanden ist


gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

passibe

In deiner readingList steht: $ret=json2nameValue($EVENT) [...] return $retDazwischen wird noch für state_l1 lowercase gesetzt.
json2nameValue nimmt aber ALLE ihm übergebenen JSON-Objekte und parst sie. In deiner Nachricht aus MQTT-Explorer steht aber eben nicht nur state_l[1-3], sondern eben auch state, das von jsno2nameValue mitgeparst wird. Daher kommt das state.

Entweder du baust in die readingList irgendeine Logik ein, die das "state" rausfiltert (und state_l[1,-3] zu state umbenennt), oder du machst das mit jsonMap.

passibe

Achso: Wieso z2m manchmal state mitschickt und manchmal nicht – keine Ahnung.
Unterschiedliche Firmwarestände der Geräte vielleicht? Vielleicht gibts aber auch in z2m irgendwelche Filter, die man so einstellen kann, dass bestimmte Werte nicht mitgeschickt werden. Müsstest du mal nachschauen.

eisman

Zitat von: passibe am 11 August 2024, 13:35:38In deiner readingList steht:
$ret=json2nameValue($EVENT) [...] return $retDazwischen wird noch für state_l1 lowercase gesetzt.
json2nameValue nimmt aber ALLE ihm übergebenen JSON-Objekte und parst sie. In deiner Nachricht aus MQTT-Explorer steht aber eben nicht nur state_l[1-3], sondern eben auch state, das von jsno2nameValue mitgeparst wird. Daher kommt das state.

Entweder du baust in die readingList irgendeine Logik ein, die das "state" rausfiltert (und state_l[1,-3] zu state umbenennt), oder du machst das mit jsonMap.

da habe ich leider keine stelle gefunden, steht state_i1 drin

und  ich habe alle durchgeschaut und verglichen, na funktionell macht es keine Probleme, stört nur wenn man schnell drüber schaut.

danke für die Hilfe, die nicht geplant war :)

gruss und schönen Sonntag
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

TomLee

Zeigt state evtl. den Status der Zeitabschaltung ?

Kannst Du mal prüfen ob das von deinem Device unterstützt wird, in dem Du diesen setter in der setList ergänzt und ausführst ?
timer:noArg $DEVICETOPIC/set {"state" : "ON", "on_time": 10}
Gehen dann alle Kanäle nach dem einschalten nach 10 Sekunden wieder aus ?


eisman

hi,

da passiert nichts,

außer, das im state timer eingetragen wird

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

TomLee

Nur mal aus Interesse (vlt. hilfts ja weiter), kannst Du mal einen Screenshot des Reiters Details in der Geräteübersicht des Frontends (von dem Device welches state mit überträgt) zeigen.

eisman

1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

TomLee

Ok, danke. Nix unerwartetes zu sehen.