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

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

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

Beitrag von faximan »

Ich habe bereits mehrere Sonoff Aktoren über zigbee2mqtt mit openhab 3.1.0 ans laufen bekommen.
Alle ließen (zbmini, snzb ir motion sensor, themostat sowie tür / fenster sensoren) sich problemlls via autodiscover als mqtt geräte über die inbox finden und anschließenden über das linken der channels als items einbinden.

Bei dem zigbee schalter (snzb-01) kann ich nun leider nicht den wichtigsten channel linken immer wenn ich es versuche bekomme ich die meldung
"There is no profile available for the selected item"

Hat jemand vielleicht einen Tipp für mich?

ich vermute es hat was mit den transformations zu tun

faximan
Beiträge: 30
Registriert: 17. Aug 2019 12:49
Answers: 0

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

Beitrag von faximan »

Also ich habe eine funktionierende Lösung gefunden:
Der Sonoff SNZB-01 muss per Textfile eingebunden werden, in der OH Community findet sich dazu eine gute Vorlage.
https://community.openhab.org/t/sonoff- ... ,-Switches
Leider verstecken sich die Vorlagen unter einen Spoiler im ersten Post unter Punkt 7 man muss auf den kleinen Pfeil / dreick bei wireles switches drücken...

Beim abändern der Vorlage im Things file muss in den Channela das Topic geändert werden:
"zigbee2mqtt/UNIQUE_ZIGBEE_ID" UNIQUE_ZIGBEE_ID muss durch den Friendly name / oder die einmalige Geräte ID vergeben werden.. Also der Name wie das Gerät unter zigbee2mqtt eingebunden wurde. In der Demo nennt es sich Sonoff_SNZB_01

Die Vorlagen Rule war mir zu kompliziert - ich habe es einfacher gelöst:

Code: Alles auswählen

rule "SNZB_01 status single"
when
    Item SNZB_01_1_Button_Action changed to single 
then
if(wohnzimmerlicht_power.state == ON) {
        sendCommand(wohnzimmerlicht_power, OFF)
    } else {
        sendCommand(wohnzimmerlicht_power, ON)
    }
end


rule "SNZB_01 status double"
when
    Item SNZB_01_1_Button_Action changed to double 
then
if(tv_power.state == ON) {
        sendCommand(tv_power, OFF)
    } else {
        sendCommand(tv_power, ON)
    }
end


rule "SNZB_01 status long"
when
    Item SNZB_01_1_Button_Action changed to single 
then
if(wandlicht_power.state == ON) {
        sendCommand(wandlicht_power, OFF)
    } else {
        sendCommand(wandlicht_power, ON)
    }
end
Diese Rule schaltet die Items / Schalter immer in den gegenläufigen Zustand, kann aber einfach abgeändert werden...

Ich hoffe das dies vielleicht dem ein oder anderen weiterhilft der vorm selben Problem steht.. Viel infos gibts nicht über das Problem

slamer
Beiträge: 3
Registriert: 31. Jan 2022 22:37
Answers: 0

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

Beitrag von slamer »

Hallo,

ich habe mehrere Sonoff SNZB-02 (Temperatursensoren) und bekomme sie einfach nicht zum Laufen. Ich habe versucht den Code aus deinem Link umzuschreiben, aber bekomme lauter fehler:

Hier der Code den ich beim hizufügen des Things verwenden wollte:

Code: Alles auswählen

Thing mqtt:topic:Büro - Temperatur & Luftfeuchtigkeit "Temp Büro" (mqtt:broker:Zigbee2MQTT-Broker) @ "Dachgeschoss" {
   Channels:
     Type number : linkquality  "Link Quality" [ stateTopic="zigbee2mqtt/Büro - Temperatur & Luftfeuchtigkeit", transformationPattern="JSONPATH:$.linkquality"]
     Type number : battery      "Battery"      [ stateTopic="zigbee2mqtt/Büro - Temperatur & Luftfeuchtigkeit", transformationPattern="JSONPATH:$.battery"]
     Type number : voltage      "Voltage"      [ stateTopic="zigbee2mqtt/Büro - Temperatur & Luftfeuchtigkeit", transformationPattern="JSONPATH:$.voltage"]
     Type number : temperature  "Temperatur"   [ stateTopic="zigbee2mqtt/Büro - Temperatur & Luftfeuchtigkeit", transformationPattern="JSONPATH:$.temperature"]
     Type number : humidity     "Luftfeuchtigkeit"      [ stateTopic="zigbee2mqtt/Büro - Temperatur & Luftfeuchtigkeit", transformationPattern="JSONPATH:$.humidity"]
     
}

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

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

Beitrag von udo1toni »

Enthält das Topic tatsächlich Leerzeichen? das sollte möglichst nicht der Fall sein! Schau bitte mal genau nach, ob da nicht vielleicht stattdessen ein Unterstrich steht. Besse noch wäre es, das Topic komplett zu ändern, denn auch das & als Zeichen sowie das ü sind an dieser Stelle zumindest ungewöhnlich, wenn auch nicht ausdrücklich verboten. Das musst Du natürlich in zigbee2mqtt anpassen.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

slamer
Beiträge: 3
Registriert: 31. Jan 2022 22:37
Answers: 0

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

Beitrag von slamer »

Danke für Deine Antwort!

Das Topic ergibt sich ja aus dem Gerätenamen, den ich über die WEbobefläche von Zigbee2MQTT angepasst habe. Der wird auch in der Datei /opt/zigbee2mqtt/data/configuration.yaml so angezeigt. Also als Friendly name. Aber ich werde es probieren.

Leider kann ich hier keine Bilder posten, denn wenn ich versuche den Code des Things so zu speichern sagt mein openHAB immer das "Type number" nur einmal vokommen darf, das kann ja nicht stimmen. Du meinst also die Code Konfiguration wäre korrekt?

Ich bin diesm Tutorial gefolgt: https://hoerli.net/openhab-3-zigbee-ueber-mqtt-steuern/ - hat auch gut geklappt, aber ab Punkt 4 wird's ein wenig ungenau.

Könnte auch der Identifier meines Zigbee2MQTT ein Probelm sein? Der lautet: mqtt:broker:Zigbee2MQTT-Broker. Danke für die Hilfe!

Übrigens verwende ich den MQTT-Explorer und da wird mir Topic so angezeigt (copy-paste): zigbee2mqtt/Büro Arik - Temperatur & Luftfeuchtigkeit

slamer
Beiträge: 3
Registriert: 31. Jan 2022 22:37
Answers: 0

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

Beitrag von slamer »

Was ich einfach nciht verstehe ist, das das code Bespielt das @faximan erwähnt föllig anders aussieht als das was ich bekomme wenn ich der Beschreibung von hoerli folge, außerdem geht es totzdem nicht - soll heißen es kommen keine Werte in openhabe an:

Code: Alles auswählen

UID: mqtt:topic:MQTTBROKER:TempArik
label: Temperatur & Luftfeuchtigkeit Büro Arik
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:MQTTBROKER
location: Dachgeschoss
channels:
  - id: BatteryTempArik
    channelTypeUID: mqtt:number
    label: Temperatursensor Büro Arik Batterie
    description: ""
    configuration:
      commandTopic: /zigbee2mqtt/TempArik
      unit: "%"
      min: 0
      stateTopic: /zigbee2mqtt/TempArik
      transformationPattern: JSONPATH:$.battery
      max: 100
  - id: ArikTemp
    channelTypeUID: mqtt:number
    label: Temeratur Arik
    description: ""
    configuration:
      commandTopic: /zigbee2mqtt/TempArik
      unit: °C
      stateTopic: /zigbee2mqtt/TempArik
      transformationPattern: JSONPATH:$.temperature

HABuserJM
Beiträge: 102
Registriert: 18. Apr 2021 11:30
Answers: 0
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Was passiert denn über Sonoff Zigbee Bridge auf MQTT-Ebene? Ich habe mir gerade 2 Switches bestellt, um sie mit der Bridge zu pairen, was ich schon mit dem Bewegungsmelder und Türkontakt getan habe und wunderbar klar komme.

HABuserJM
Beiträge: 102
Registriert: 18. Apr 2021 11:30
Answers: 0
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Habe die Schalter bekommen und mit der Sonoff Bridge gepairt, ohne Probleme. Leider habe ich mit wachsender Zahl von Sensoren ein Problem mit der Unterscheidung über die Channel der Zigbee Bridge.
Alle werden über das State Topic "tele/zb_bridge/SENSOR" eingebunden und über JSONPATH-transformation unterschieden z.B.

Code: Alles auswählen

JSONPATH:$.ZbReceived.0x1D40.Contact
oder

Code: Alles auswählen

JSONPATH:$.ZbReceived.0xE579.Power
Leider führt das bei meinen 4 Sensoren zu jeweils 3 Warnmeldungen im Log, von den Batteriestatusmeldungen, die noch anders aussehen, mal abgesehen.
Wie kann ich dort eine Vorfilterung vornehmen? Eine RegEx-Regel davor funktioniert irgendwie nicht richtig, das ich die Syntax nicht verstehe und ob das in den Transformationpattern überhaupt geht

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

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

Beitrag von udo1toni »

Die incomming Value Transformation muss REGEX und JSONPATH miteinander verknüpfen, z.B.

Code: Alles auswählen

REGEX:(.*0x1D40.*)∩JSONPATH:$.ZbReceived.0x1D40.Contact
Der REGEX Ausdruck leitet also jeden Ausdruck ungefiltert weiter, der die Zeichenfolge 0x1D40 enthält. Der . ist ein beliebiges Zeichen, der * bedeuetet "beliebig oft wiederholen", es dürfen also beliebig viele beliebige Zeichen vor bzw. hinter der konkreten Zeichenfolge auftauchen. Wichtig ist natürlich, dass die Zeichenfolge auch eindeutig ist und nicht etwa auch in anderen Meldungen vorkommt. Das ∩ ist die Verkettung der beiden Transformations, der Output von REGEX wird als Input von JSONPATH verwendet.

Wichtig ist natürlich, dass sowohl das REGEX als auch das JSONPATH Addon installiert ist.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

HABuserJM
Beiträge: 102
Registriert: 18. Apr 2021 11:30
Answers: 0
Wohnort: Berlin

HABuserJM

Beitrag von HABuserJM »

Grosse Klasse, hat funktioniert, vielen Dank.
Bei den anderen Unterschieden in denen z.B. der Batteriestatus übertragen wird, ist eine einfache REGEX-Regel nicht anwendbar, da der JSON-String zu viele abweichende Werte enthält. Naja, das soll ja angeblich nur einmal am Tag oder pro Stunde vorkommen.

Antworten