Sonoff SNZB-01 Switch / zigbee2mqtt "There is no profile available for the selected item"

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

Benutzeravatar
udo1toni
Beiträge: 13931
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Sonoff SNZB-01 Switch / zigbee2mqtt "There is no profile available for the selected item"

Beitrag von udo1toni »

Kannst Du bitte mal ein konkretes Beispiel zeigen? "Geht nicht" gibt's nicht.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

HABuserJM
Beiträge: 87
Registriert: 18. Apr 2021 11:30
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Der "normale" Aktivitäts JSON-Konstrukt ist :

Code: Alles auswählen

{"ZbReceived":{"0x1D40":{"Device":"0x1D40","Name":" door_contact","0500?00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"Contact":1,"Endpoint":1,"LinkQuality":84}}}
wenn der Türkontakt auslöst. Gerade wurde aber ein Device-Status Konstrukt gesendet, der so aussieht:

Code: Alles auswählen

{"ZbReceived":{"0x1D40":{"Device":"0x1D40","Name":" door_contact","BatteryPercentage":100,"Endpoint":1,"LinkQuality":71}}}
Mein transformationpattern sieht also so aus :

Code: Alles auswählen

REGEX:(.*0x1D40.*)∩JSONPATH:$.ZbReceived.0x1D40.Contact
, da ich auf Contact reagiere. Das führt zu folgender Warnmeldung :

Code: Alles auswählen

Executing the JSONPATH-transformation failed: Invalid path '$.ZbReceived.0x1D40.Contact' in '{"ZbReceived":{"0x1D40":{"Device":"0x1D40","Name":" door_contact","BatteryPercentage":100,"Endpoint":1,"LinkQuality":71}}}'
Sorry für die Einzeilencodeausgabe, aber ich weiss nicht, wie ich JSON formatiert posten kann, falls es überhaupt geht.

Benutzeravatar
udo1toni
Beiträge: 13931
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Sonoff SNZB-01 Switch / zigbee2mqtt "There is no profile available for the selected item"

Beitrag von udo1toni »

Kein Problem :)

Code: Alles auswählen

// JSON 1
{
    "ZbReceived": {
        "0x1D40": {
            "Device": "0x1D40",
            "Name": " door_contact",
            "0500?00": "010000010000",
            "ZoneStatusChange": 1,
            "ZoneStatusChangeZone": 1,
            "Contact": 1,
            "Endpoint": 1,
            "LinkQuality": 84
        }
    }
}
// JSON 2
{
    "ZbReceived": {
        "0x1D40": {
            "Device": "0x1D40",
            "Name": " door_contact",
            "BatteryPercentage": 100,
            "Endpoint": 1,
            "LinkQuality": 71
        }
    }
}
Zum Aufhübschen verwende ich ein Plugin, welches JSON automatisch formatiert, das sind dann tatsächlich nur zwei Klicks.

Ja, das ist natürlich doof... allerdings ginge sowas:

Code: Alles auswählen

REGEX:(.*0x1D40.*Contact.*)∩JSONPATH:$.ZbReceived.0x1D40.Contact
Also im Ojekt muss zuerst der eine und danach der andere Ausdruck vorkommen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

HABuserJM
Beiträge: 87
Registriert: 18. Apr 2021 11:30
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Klasse, danke, hat soweit funktioniert.
Dann könnte ich also für einen weiteren Channel, welcher den Batteriestatus enthält, folgendes verwenden:

Code: Alles auswählen

REGEX:(.*0x78AD.*BatteryPercentage.*)∩JSONPATH:$.ZbReceived.0x78AD.BatteryPercentage
, um die normalen Werte abzufangen.

Benutzeravatar
udo1toni
Beiträge: 13931
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Sonoff SNZB-01 Switch / zigbee2mqtt "There is no profile available for the selected item"

Beitrag von udo1toni »

Genau :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

HABuserJM
Beiträge: 87
Registriert: 18. Apr 2021 11:30
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Hier ist das Ergebnis und ich habe keine Warnmeldungen mehr.
batterielevel.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten