Schalten einer Leuchte funktioniert nicht

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Blui
Beiträge: 52
Registriert: 6. Jul 2020 14:50
Answers: 0

Schalten einer Leuchte funktioniert nicht

Beitrag von Blui »

Halloe,
ich versuche mich schon seit einigen Tage mit dem ein- und ausschalten einer einfachen auf Tasmota 8.3.1 geflashten Lampe. Irgendwo hakt es da bei mir. Ich brauche doch eigentlich nur eine Item- und eine sidemap-datei, oder? Mqtt-broker ist installiert und mit Sonos-Steckdosen und Shelly1 funktioniert alles.

Hier mal die 2 Dateien, vielleicht kann mir jemand sagen wo ich da was falsch mache. Ich probiere das ganze inzwischen auf 2 verschiedene Arten und zusätzlich noch html aber nichts bringt die Lampe zum schalten.

Item-Datei

Code: Alles auswählen

// TasLight.items //
// MQTT-Test 1 //
// 
Switch TasLight1 "Schreibtischstrahler" {mqtt=">[mqtt.broker:cmnd/tasmota_86C550/POWER:command:*:default],>[mqtt.broker:stat/tasmota_86C550/stat/POWER:state:default]" }

// Http-Test 1 //
Switch TasLight2   "Schreibtischstrahler"  {http=">[ON:POST:http://192.168.188.37/cm?cmnd=Power%20ON] >[OFF:POST:http://192.168.188.37/cm?cmnd=Power%20OFF]"}

// MQTT-Test 2 //
//
Switch TasLight "Schreibtischstrahler" {mqtt=">[mqtt.broker:cmnd/tasmota_86C550/POWER:command]],>[mqtt.broker:stat/tasmota_86C550/stat/POWER:state:default]" }
Sitemap-Datei

Code: Alles auswählen

Frame label="Tasmota" {
        Switch item=TasLight label="Schreibtischstrahler TasLight[]" icon="lightbulb"
        Switch item=TasLight1 label="Schreibtischstrahler TasLight1[]" icon="lightbulb"
        Switch item=TasLight2 label="Schreibtischstrahler TasLight2[]" icon="lightbulb"
    }

EmptySoft
Beiträge: 188
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von EmptySoft »

Als erstes benötigst Du ein Thing
BYe
Harald

Blui
Beiträge: 52
Registriert: 6. Jul 2020 14:50
Answers: 0

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von Blui »

So eine Antwort hilft mir da nun auch nicht sehr weiter. Ein kleines Beispiel wäre nett gewesen.

Wenn ich es so richtig sehe stehen in der Thing-Datei dann folgende Zeilen:

Thing <binding_id>:<type_id>:<thing_id> "Label" @ "Location" [ <parameters> ]

Woran sehe ich den jetzt was was ist in den Textzeilen?

Und warum brauche ich für Shelly keine Thing-Datei?

Edit: Nach diversen Versuchen und grauen Haaren habe ich es jetzt anscheinend hinbekommen.

Fragen die jetzt noch offen sind: Warum kann ich Things nur in PaperUI anlegen und warum sehe ich die auf /etc/openhab2/things nicht?

Aber das gehört wohl woanders hin.

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

Schalten einer Leuchte funktioniert nicht

Beitrag von udo1toni »

Also, die Items-Definition, die Du da zeigst, ist die für mqtt1. Nun könntest Du tatsächlich mqtt1 nutzen, das ist aber eher unwahrscheinlich.

Du schreibst, dass anderes schon funktioniert. Handelt es sich dabei auch um mqtt-gesteuerte Dinge, und die Steuerung über openHAB funktioniert schon?

Du schreibst, die Lampen sind mit Tasmota geflasht. Welchen Broker hast Du eingerichtet? Hast Du die Lampen schon erfolgreich mit dem Broker verbunden?

Wenn Du in openHAB noch kein mqtt eingerichtet hast, installiere zunächst das mqtt2 Binding.
Anschließend legst Du über Paper UI manuell ein Thing an, und zwar eine Bridge zum mqtt Broker. Es geht um den Broker, NICHT um den System Broker!
Nachdem Du den Broker erfolgreich angelegt hast, wird dieser Broker ONLINE angezeigt.
Nun musst Du ein weiteres Thing anlegen, und zwar ein generic mqtt Thing. Dieses Thing wird mit der gerade angelegten mqtt Bridge verbunden.
Auch dieses Thing muss ONLINE angezeigt werden.
Nun kannst Du innerhalb dieses Things Channel anlegen, wenn es sich um eine ON/OFF-Lampe handelt, reicht ein Channel mit dem commandTopic für ON/OFF sowie das passende stateTopic, welchen den Status zurück meldet.

An dieser Stelle möchte ich dringend dazu raten, einen mqtt Sniffer wie z.B. Mqtt.fx oder mqtt Spy einzurichten. Auf meinem Android Handy nutze ich MQTT Snooper, funktioniert auch tadellos. Du kannst in einem solchen MQTT Client das Topic # abonnieren, dan siehst Du alle Nachrichten, die rein oder raus gehen. # steht für „alles danach ist egal“. Du kannst das auch eingrenzen, z.B. Mit stat/meinTasmotaDevice/# siehst Du alle Status-Meldungen von meinTasmotaDevice. Ich habe bei meinen Devices das Full-Topic umgekehrt definiert, so dass stat bzw. cmnd bzw. tele nach dem DeviceNamen kommen. Man kann aber auch Teile eines Topic-Pfades mit einem ? Ersetzen lassen, ?/meinTasmotaDevice/# sollte also alle Messages für das Device liefern.

So. Über den Sniffer kannst Du schauen, ob openHAB die richtigen Messages sendet und Dein Device auch passend antwortet.

Den Channel verlinkst Du nun mit einem Item. Das geht sowohl in einer Textdatei, als auch über Paper UI, ganz wie Du willst. Du musst aber die Channel UID angeben (kannst Du in Paper UI bequem ins Clipboard kopieren lassen). Versuche bitte nicht, die UID zu erraten, bevor Du sicher verstanden hast, wie sie aufgebaut ist ;)

Wenn Du am liebsten mit Textdateien arbeitest, kannst Du auch MQTT Bridge und Things mittels einer *.things Datei anlegen. Die Anleitung dazu ist allerdings sehr versteckt (Link füge ich gleich noch hier ein)

https://github.com/openhab/openhab-addo ... xamples.md

Gesendet von iPad mit Tapatalk
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Blui
Beiträge: 52
Registriert: 6. Jul 2020 14:50
Answers: 0

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von Blui »

udo1toni hat geschrieben: 12. Jul 2020 14:40 Also, die Items-Definition, die Du da zeigst, ist die für mqtt1. Nun könntest Du tatsächlich mqtt1 nutzen, das ist aber eher unwahrscheinlich.
Also in der PaperUI steht bei mir in den Bindings nur

MQTT Binding
Erlaubt die Verwaltung von MQTT Verbindungen und das Verknüpfen von MQTT Topics
Author: David Graeff

Woran sehe ich denn ob das jetzt MQTT 1 oder 2 ist?
Du schreibst, dass anderes schon funktioniert. Handelt es sich dabei auch um mqtt-gesteuerte Dinge, und die Steuerung über openHAB funktioniert schon?
Du schreibst, die Lampen sind mit Tasmota geflasht. Welchen Broker hast Du eingerichtet? Hast Du die Lampen schon erfolgreich mit dem Broker verbunden?
Ja, ein paar Sonof-Steckdosen auf Tasmota geflasht und ein Shellybutton. Und beides lässt sich wie gewünscht über Openhab schalten.
Wenn Du in openHAB noch kein mqtt eingerichtet hast, installiere zunächst das mqtt2 Binding.
Anschließend legst Du über Paper UI manuell ein Thing an, und zwar eine Bridge zum mqtt Broker. Es geht um den Broker, NICHT um den System Broker!
Nachdem Du den Broker erfolgreich angelegt hast, wird dieser Broker ONLINE angezeigt.
Nun musst Du ein weiteres Thing anlegen, und zwar ein generic mqtt Thing. Dieses Thing wird mit der gerade angelegten mqtt Bridge verbunden.
Auch dieses Thing muss ONLINE angezeigt werden.
Nun kannst Du innerhalb dieses Things Channel anlegen, wenn es sich um eine ON/OFF-Lampe handelt, reicht ein Channel mit dem commandTopic für ON/OFF sowie das passende stateTopic, welchen den Status zurück meldet.
Ich denke soweit habe ich es jetzt hinbekommen.
An dieser Stelle möchte ich dringend dazu raten, einen mqtt Sniffer wie z.B. Mqtt.fx oder mqtt Spy einzurichten. Auf meinem Android Handy nutze ich MQTT Snooper, funktioniert auch tadellos. Du kannst in einem solchen MQTT Client das Topic # abonnieren, dan siehst Du alle Nachrichten, die rein oder raus gehen. # steht für „alles danach ist egal“. Du kannst das auch eingrenzen, z.B. Mit stat/meinTasmotaDevice/# siehst Du alle Status-Meldungen von meinTasmotaDevice. Ich habe bei meinen Devices das Full-Topic umgekehrt definiert, so dass stat bzw. cmnd bzw. tele nach dem DeviceNamen kommen. Man kann aber auch Teile eines Topic-Pfades mit einem ? Ersetzen lassen, ?/meinTasmotaDevice/# sollte also alle Messages für das Device liefern.
So. Über den Sniffer kannst Du schauen, ob openHAB die richtigen Messages sendet und Dein Device auch passend antwortet.
Ja, mqtt.fx habe ich schon, MQTT Snooper kommt dann mal auf das Tablet.
Den Channel verlinkst Du nun mit einem Item. Das geht sowohl in einer Textdatei, als auch über Paper UI, ganz wie Du willst. Du musst aber die Channel UID angeben (kannst Du in Paper UI bequem ins Clipboard kopieren lassen). Versuche bitte nicht, die UID zu erraten, bevor Du sicher verstanden hast, wie sie aufgebaut ist ;)
Das heisst als am sinnvollsten ist es Things immer über die UI anzulegen um die ganzen UIDs zu bekommen? Na gut, wenn es denn sein muss. :-)
Wenn Du am liebsten mit Textdateien arbeitest, kannst Du auch MQTT Bridge und Things mittels einer *.things Datei anlegen. Die Anleitung dazu ist allerdings sehr versteckt (Link füge ich gleich noch hier ein)

https://github.com/openhab/openhab-addo ... xamples.md
Gut, soweit ich gesehen habe lassen sich in der UI Dateien die per Texteditor angelegt sind dort nicht löschen. Da muss man dann auch mal drauf kommen. Ich verstehe jetzt nur nicht wo die über die UI angelegten Dateien abgelegt werden wenn nicht in die entsprechenden Verzeichnisse.

Ach, da steht es ja: Attention: It has to be noted, that Things and Items added through Paper UI / discovery to the internal database will not be written to configuration files. Things and Items definitions can be distributed and mixed among the internal database and manually defined text files.

Ok, dann schau ich mal wie ich weiter klarkomme. Danke für die ausführliche Erklärung.

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

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von udo1toni »

Ja, das mit den Konfigurationsdateien kommt jedesmal wieder auf, obwohl es in der Doku doch erwähnt ist. Mit OH3 wird das aber enden.
An die UID kommst Du so oder so. Wenn Du VSCode verwendest, kannst Du Items halbautomatisch erstellen lassen. Da musst Du dann auch nicht die UID nachschlagen, das übernimmt das openHAB Plugin in VSCode.

Gesendet von meinem SM-G973F mit Tapatalk

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

Blui
Beiträge: 52
Registriert: 6. Jul 2020 14:50
Answers: 0

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von Blui »

VSCode verwende ich, obwohl ich der Meinung bin dort läuft auch nicht alles rund.
Zum einem habe ich dort bei Extension:Openhab immer das Icon Set File Icon Theme (selbst wenn ich dann Openhab bei nachfolgender Auswahl anklicke) und zum anderen kommt beim anklicken irgendwelcher Items auf dem Openhab-Reiter immer die Meldung Your openHAB environment is running in simple mode. Paper UI can't edit items when this mode is activated!
Ich habe schon in der addons.cfg package = standard dazu geschrieben, das ändert aber auch nichts.

Aber das gehört ja nicht mehr hierher, ich werd mich mal durch das Forum graben deshalb.

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von peter-pan »

..ich bin zwar nicht ganz sicher, aber ich denke, dass diese Fehlermeldung daher kommt, dass du deine Items selbst angelegt hast und nicht über PaperUI. In dieser Einstellungsvariante, kannst du aber automatisch Items(rechte Maustaste) aus erzeugen, und zwar aus Things für die .items Dateien und für Items für die .sitemap.

Um die Items zu bearbeiten klickst du nicht das OH-Icon an, sondern das Explorer-Icon. Hier kannst du die Items-Datei deiner Wahl selektieren und die darin enthaltenen Items bearbeiten. Du kannst natürlich jede Art von Textdateiten bearbeiten z.B. Rules, da hast du sogar eine Syntaxprüfung inclusive.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von udo1toni »

Welche Version von openHAB nutzt Du? Die Falschmeldung mit Simple Mode deutet darauf hin, dass Du nicht alles korrekt konfiguriert hast. Wenn LSP und REST API funktionieren, darf diese Meldung nicht kommen.
Man muss aufpassen, VSCode verwaltet drei verschiedene Ebenen von Einstellungen. (Workspace, Directory und User)
Prüfe mal, wo Du die Einstellungen vorgenommen hast, und dass sich die Einstellungen nicht widersprechen.
Prüfe, ob die Adresse vom Server überall stimmt.

Gesendet von meinem SM-G973F mit Tapatalk

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

Benutzeravatar
peter-pan
Beiträge: 2573
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Schalten einer Leuchte funktioniert nicht

Beitrag von peter-pan »

udo1toni hat geschrieben: 13. Jul 2020 15:29 Man muss aufpassen, VSCode verwaltet drei verschiedene Ebenen von Einstellungen. (Workspace, Directory und User)
...Oooh. "user" und "workbench" hab ich gefunden, aber "Directory" nicht. Hast du mir einen Tipp, wo das Verzeichnis liegt bzw. wie ich da dran komme ? :?:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten