Switchbot mit openHAB 3

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Switchbot mit openHAB 3

Beitrag von PJH »

Hallo zusammen, Grüß Gott allerseits.

Ich finde in der Suche keinen Thread "Switchbot - Vorhangöffner/-schließer" betreffend, daher möchte ich einmal anfragen, ob jemand aus dem Forum diesen benutzt und dafür eine Lösung in openHAB gefunden/realisiert hat.

ich habe zwar im englischsprachigen Forum ein bisschen was gefunden, verstehe es aber nicht so recht.

Ich würde mich freuen, wenn jemand helfen könnte.

Schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.

PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: Switchbot mit openHAB 3

Beitrag von PJH »

Hallo, kann mir denn wirklich niemand aus dem Forum helfen?

Ich habe mittlerweile ein Thing angelegt, welches den Switchbot Curtain online erkennt.
Die MQTT Ansteuerung erfolgt über einen, mit entsprechender Firmware programmierten ESP32.
Über die App MQTT Explorer kann ich auch den Vorhangöffner/-schließer bedienen, er tut was er soll, indem ich die Kommandos OPEN/CLOSE "publishe".

Aber wie kann ich diese beiden Kommandos aus openHAB 3 an MQTT senden? Was immer ich in openHAB mache, es kommen nur die Kommandos ON/OFF bei MQTT an, die aber nicht gültig sind.

Ich erlaube mir einmal mein Thing und Item zu posten, vielleicht kann mir ja doch jemand einen Tip geben?!
_________________________________________________________________________________________________
Bridge mqtt:broker:embedded-mqtt-broker "PJHs MQTT Broker" [host="172.x.x.x", secure=false] { (funktioniert)
Thing topic PJHs-esp32 "PJHs ESP32"
{
Channels:
Type switch (auch probiert mit number und string): vorhang "Vorhang Flur" [stateTopic="switchbot/vorhang/state", commandTopic="switchbot/PJHs-esp32/curtain/curtainone/set"]
} }
_______________________
Switch (auch versucht mit Number und String) vorhang "Vorhang Flur" <vorhang> {channel="mqtt:topic:embedded-mqtt-broker:PJHs-esp32:vorhang"}
______________________
rule "Vorhang Flur auf"
when
Item vorhang received command ON (Das ist dann wohl das Attribut, das an MQTT übergeben werden)
then
{

vorhang.sendCommand("CLOSE") (auch versucht ohne Anführungszeichen, auch mit 0 und 100 (auch gültig))

}
end

rule "Vorhang Flur zu"

when
Item vorhang received command OFF (Das ist dann wohl das Attribut, das an MQTT übergeben werden)
then
{
vorhang.sendCommand("OPEN")

}
end
____________________________

Im MQTT Explorer wird folgendes angezeigt (eigentlich wollte ich ein Bild einstellen, weiss aber nicht wie's geht):

switchbot
PJHs-esp32
curtain
curtainone
battery=86
rssi =-60
attributes xxx
state = CLOSE
position = {"pos":0}
set = ON (das ist der Wert, der von openHAB kommt, richtigerweise muss das Kommando OPEN oder CLOSE heissen)
status = {"status":"connected","command":"ON"}
_______________________________

Ganz toll wäre es, wenn mir doch jemand weiterhelfen, oder zumindest einen Anhaltspunkt geben könnte!

Danke im Voraus und schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.

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

Re: Switchbot mit openHAB 3

Beitrag von udo1toni »

Du weißt schon, dass Deine Konfiguration Fehler enthält?
Zuerst mal sollten IDs ausschließlich Buchstaben des englischen Alphabets, arabische Ziffern und wahlweise noch den Unterstrich enthalten. Das Minuszeichen mag nicht unmittelbar einen Fehler auslösen, ist aber absolut unüblich, ich würde also darauf verzichten. Das Erste Zeichen muss zwingend ein Buchstabe sein, ob groß oder klein spielt keine Rolle, aber Du weißt ja sicher, die Schreibweise muss exakt eingehalten werden.

Einen Embedded MQTT Broker gibt es schon zwei Jahre nicht mehr, falls Du diesen tatsächlich nutzen solltest, bist Du auf einer völlig veralteten Version von openHAB. :) Es wäre auf jeden Fall sinnvoll, eine aktuelle Version zu verwenden, auch wenn das für die Aufgabe selbst keine Rolle spielt.

Dann Deine Auszüge aus Deiner Konfiguration insgesamt... WO bitte im Forum hast Du es so gesehen? Es gibt hier Zitatfunktionen und Code-Darstellung. Bitte keine Bilder, wenn es nicht zwingend notwendig ist.

Code: Alles auswählen

Bridge mqtt:broker:broker "PJHs MQTT Broker" [
    host="172.x.x.x", 
    secure=false] {
    Thing topic esp32 "PJHs ESP32" {
    Channels:
        Type switch : vorhang "Vorhang Flur" [   stateTopic="switchbot/vorhang/state",
                                               commandTopic="switchbot/PJHs-esp32/curtain/curtainone/set",
                                                         on="OPEN",
                                                        off="CLOSE"
                                             ]
    }
}
wäre besser lesbar. Allerdings ist es höchst unwahrscheinlich, dass die Topics so, wie Du sie hier verwendet hast stimmen.
Übrigens heißt "Private IP-Adresse" nicht, dass diese geheim wäre oder es irgendeinen Grund dafür gäbe, diese geheim zu halten. Es bedeutet lediglich, dass sie nicht im Internet geroutet wird, also aus dem Internet nicht direkt erreichbar ist. Du siehst, selbst wenn Du die Adresse hier öffentlich postest, kann niemand damit etwas anfangen. Etwas anderes wäre es bei Deiner öffentlichen IP, die solltest Du möglichst nicht verbreiten (selbst wenn sie regelmäßig geändert wird). Eigentlich witzig...
Das abgeänderte Beispiel oben wäre eine Variante, die OPEN und CLOSE senden sollte, wenn ein verlinktes Switch Item geschaltet wird.

Code: Alles auswählen

Switch flurVorhang "Vorhang Flur" <blinds> { channel="mqtt:topic:broker:esp32:vorhang" } 
Im MQTT Explorer wird das ganz sicher nicht so aussehen, wie Du es hier darstellst :) Wenn Du ein Bild hochladen willst, kannst Du das aus dem vollständigen Editor machen (unterhalb des Texteingabebereichs gibt es Optionen und Dateianhänge - Dort kannst Du Dateien hinzufügen und auch entscheiden, ob diese inline angezeigt werden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

PJH
Beiträge: 135
Registriert: 23. Mai 2017 08:32
Answers: 0
Wohnort: Duisburg
Kontaktdaten:

Re: Switchbot mit openHAB 3

Beitrag von PJH »

Hallo, udo1toni,

ganz, ganz herzlichen Dank für Deine Hilfe!

Mit ein paar kleinen Änderungen gegenüber Deinem Beispiel läuft der Vorhangmotor jetzt.

Einige Anmerkungen noch:
Embeddet-MQTT-Broker hielt ich für einen Namen, nicht als einen "broker". Ich benutze openHAB 3 mit mosquito.
Den früheren Embedded-.... benutze ich natürlich schon lange nicht mehr. Ich habe ja auch zahlreiche Sonoff-Geräte, die über MQTT gesteuert werden. Habe es aber dennoch geändert (in mosquito).
Die von Dir gezeigte Schreibweise werde ich mir zunutze machen.
Mit der privaten IP-Adresse dachte ich, das sei im Forum so Usus. Ich habe meine Netze so abgesichert, dass ich meine IP-Adressen getrost zeigen kann. Für das Internet habe ich eine feste IP, die ist natürlich auch überall einsehbar.

Noch einmal ganz vielen Dank und schöne Grüße. PJH
openHAB 4.3 im Synology NAS Docker-Container.

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

Re: Switchbot mit openHAB 3

Beitrag von udo1toni »

Wie gesagt, es ist sinnlos, eine privat IP-Adresse zu maskieren, man kann die IP-Adresse nur dann nutzen, wenn man sich innerhalb Deines LAN befindet.
Wenn jemand sich schon in Deinem LAN befindet, kann er sehr bequem einen Portscan absetzen und alle Systeme abfragen, welche in Deinem LAN verfügbar machen, das dauert nur wenige Sekunden. NMAP wäre ein bekanntes Tool, für alle wichtigen Betriebssysteme verfügbar, sogar für Android (und vermutlich auch iOS).
Der Einbruch in Dein LAN ist also das einzige Problem, um das Du Dich sorgen musst, weshalb man seine öffentliche IP eher nicht preis gibt - schon gar nicht, wenn diese fix ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten