Stauts5 abfragen per openHAB 3

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Pander
Beiträge: 4
Registriert: 4. Sep 2021 21:45

Stauts5 abfragen per openHAB 3

Beitrag von Pander »

Moin,
wie im Titel erwähnt würde ich gerne per openHAB den STATUS5 per MQTT automatisch abfragen, ich habe ein paar Bsp gefunden die per Rule funktionieren sollen aber das waren nur ältere Bsp.
Kennt jemand vlt eine Möglichkeit wie ich den Status abfragen kann ohne ihn durch z.B. einen Switch auszulösen?

MfG

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Stauts5 abfragen per openHAB 3

Beitrag von int5749 »

Hi,

Dn Status wovon? Für etwas Hilfe bräuchten wir noch einiges mehr an Angaben.

Wie ist Dein System?
Läuft matt bereits?
Welcher Broker?
Was möchtest Du abfragen??

Bisher ist es etwas dürftig :o
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Stauts5 abfragen per openHAB 3

Beitrag von udo1toni »

Meinst Du den Status 5 von Tasmota?

Du musst halt den Befehl Status 5 an Tasmota senden. Im Gegenzug antwortet Tasmota dann mit dem Topic STATUS5.
Du brauchst also lediglich ein generic mqtt Thing, in dem es einen String Channel mit dem stateTopic stat/name_des_geräts/STATUS5 gibt.
Um den Befehl senden zu können, ist es das Einfachste, einen weiteren Channel anzulegen, der das commandTopic cmnd/name_des_geräts/status trägt und einfach das Payload 5 sendet. Die beiden Channel verknüpfst Du mit zwei Items. Über das eine Item kannst Du nun per Rule zyklisch die 5 an das passende Topic senden, üder das andere Item bekommst Du die Antwort.
Du könntest sogar nur ein Item (und nur einen Channel) verwenden. Du solltest dann allerdings autoupdate=false in den Metadaten setzen, damit ein sendCommand("5") nicht den Status überschreibt.
Das sieht dann so aus:

Code: Alles auswählen

UID: mqtt:topic:f7215002c2:mqttTest
label: MQTT Thing for Teset
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
  - id: test_status5
    channelTypeUID: mqtt:string
    label: Status 5
    description: ""
    configuration:
      commandTopic: cmnd/sonoff_1/STATUS
      stateTopic: stat/sonoff_1/STATUS5
Und wenn Du nun diesen Channel mit einem String Item verknüpfst, kannst Du den Befehl 5 über das String Item absetzen und der Status wird umgehend zurückgemeldet.
Wenn Du nur an einem bestimmten Teil von Status5 interessiert bist, kannst Du natürlich auch JSONPATH verwenden, um nur das eine Detail anzuzeigen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Pander
Beiträge: 4
Registriert: 4. Sep 2021 21:45

Re: Stauts5 abfragen per openHAB 3

Beitrag von Pander »

int5749 hat geschrieben: 4. Sep 2021 23:38 Hi,

Dn Status wovon? Für etwas Hilfe bräuchten wir noch einiges mehr an Angaben.

Wie ist Dein System?
Läuft matt bereits?
Welcher Broker?
Was möchtest Du abfragen??

Bisher ist es etwas dürftig :o
Tut mir leid war auf die schnelle vorn schlafen gehen und hab mal eben qiuck und dirty das Thema erstellt 🙈

Es läuft ein Raspberry Pi 4 mit openhab 3.

Mqtt läuft bereits über den Pi selbst, mit openhab Binding. Verbindung und schalten funktioniert soweit auch.

Um genau zu sein möchte ich die IP Adresse von meinem Tasmota Gerät abfragen die sich im "Status 5" versteckt.




udo1toni hat geschrieben: 5. Sep 2021 01:04 Meinst Du den Status 5 von Tasmota?

Du musst halt den Befehl Status 5 an Tasmota senden. Im Gegenzug antwortet Tasmota dann mit dem Topic STATUS5.
Du brauchst also lediglich ein generic mqtt Thing, in dem es einen String Channel mit dem stateTopic stat/name_des_geräts/STATUS5 gibt.
Um den Befehl senden zu können, ist es das Einfachste, einen weiteren Channel anzulegen, der das commandTopic cmnd/name_des_geräts/status trägt und einfach das Payload 5 sendet. Die beiden Channel verknüpfst Du mit zwei Items. Über das eine Item kannst Du nun per Rule zyklisch die 5 an das passende Topic senden, üder das andere Item bekommst Du die Antwort.
Du könntest sogar nur ein Item (und nur einen Channel) verwenden. Du solltest dann allerdings autoupdate=false in den Metadaten setzen, damit ein sendCommand("5") nicht den Status überschreibt.
Das sieht dann so aus:

Code: Alles auswählen

UID: mqtt:topic:f7215002c2:mqttTest
label: MQTT Thing for Teset
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
  - id: test_status5
    channelTypeUID: mqtt:string
    label: Status 5
    description: ""
    configuration:
      commandTopic: cmnd/sonoff_1/STATUS
      stateTopic: stat/sonoff_1/STATUS5
Und wenn Du nun diesen Channel mit einem String Item verknüpfst, kannst Du den Befehl 5 über das String Item absetzen und der Status wird umgehend zurückgemeldet.
Wenn Du nur an einem bestimmten Teil von Status5 interessiert bist, kannst Du natürlich auch JSONPATH verwenden, um nur das eine Detail anzuzeigen.

Ich bekommen leider nur "Null" wieder. Ich glaube ich habe beim item irgendwas falsch. Habe bei dem metadaten "Auto-update = false" und "Command option option=5". Ich finde auch den "payload" im channel nicht wo ich den eintragen muss.

Code: Alles auswählen

UID: mqtt:topic:HomePi:677d654e2a
label: licht
thingTypeUID: mqtt:topic
configuration:
  payloadNotAvailable: Offline
  availabilityTopic: tele/licht/LWT
  payloadAvailable: Online
bridgeUID: mqtt:broker:HomePi
channels:
  - id: test_status5
    channelTypeUID: mqtt:string
    label: Status 5
    description: null
    configuration:
      commandTopic: cmnd/licht/STATUS
      stateTopic: stat/licht/STATUS 5

Pander
Beiträge: 4
Registriert: 4. Sep 2021 21:45

Re: Stauts5 abfragen per openHAB 3

Beitrag von Pander »

OK, ich weiss zwar nicht wieso aber jetzt geht's.
Jetzt muss ich nur mal gucken wie ich den string zerlege

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

Re: Stauts5 abfragen per openHAB 3

Beitrag von udo1toni »

Keine Command Option. Du musst die 5 Als Kommando schicken, aus einer Rule heraus.

MeinItem.sendCommand(„5“) (Achtung, Anführungszeichen hier verkehrt, da iPad)

Ich hab das gestern bei mir extra ausprobiert, um sicherzugehen, dass ich keinen Quatsch erzähle, ich kann Dir also versichern, dass das wie beschrieben funktioniert.

Eine andere Sache ist natürlich, warum Du überhaupt die IP-Adresse herausfinden willst (und vor allem: warum zyklisch?).

Ich gehe mal stark davon aus, dass Deine Geräte ihre IP-Adresse per DHCP beziehen (sonst wüsstest Du die Adresse ja…)
Um einem Gerät dauerhaft die gleiche IP zu verschaffen, trägt man das Gerät mit seiner MAC im DHCP-Server ein.
Der DHCP-Server läuft gewöhnlich auf dem Router. Je nach Modell kann die Option, fixe Leases zuzuweisen etwas versteckt sein, aber so gut wie alle Geräte unterstützen das von Haus aus.


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

Pander
Beiträge: 4
Registriert: 4. Sep 2021 21:45

Re: Stauts5 abfragen per openHAB 3

Beitrag von Pander »

Hab's jetzt hinbekommen :D

Mit der IP Adresse ist reine Spielerei, aber es hilft mir die Materie besser kennenzulernen.

Mit node-red war es ein bisschen einfacher, aber blynk hat mir einen Strich durch die Rechnung gemacht.

Aber vielen Dank für die schnelle Antwort👍🏾

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

Re: Stauts5 abfragen per openHAB 3

Beitrag von udo1toni »

Immer gerne :)


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

Antworten