Owntracks über MQTT
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Owntracks über MQTT
Hallo
Nach vielem Testen und lesen komme ich mit der Integrierung von Owntracks Daten in Openhab nicht weiter.
Der Broker auf dem Raspi 4 Oh3.2 läuft
. .
und bekomme folgendes (Json) Datenfile (aus MQTT.FX)
. .
Dann habe ich ein generic Thing erzeugt
. .
mit folgenden Channel Parametern
.
Nach vielem Testen und lesen komme ich mit der Integrierung von Owntracks Daten in Openhab nicht weiter.
Der Broker auf dem Raspi 4 Oh3.2 läuft
. .
und bekomme folgendes (Json) Datenfile (aus MQTT.FX)
. .
Dann habe ich ein generic Thing erzeugt
. .
mit folgenden Channel Parametern
.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
mit den folgenden Parametern.
Ich wollte mal als einfachste Daten die Batterie Ladung aus batt: darstellen. .
leider ist der Wert immer Null.
Was tun ?? Ist die Topic Beschreibung falsch? Oder müssen die Daten anders aus dem File extrahiert werden?
besten Dank Wolf
Ich wollte mal als einfachste Daten die Batterie Ladung aus batt: darstellen. .
leider ist der Wert immer Null.
Was tun ?? Ist die Topic Beschreibung falsch? Oder müssen die Daten anders aus dem File extrahiert werden?
besten Dank Wolf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Owntracks über MQTT
Unter welchem Topic zeigt mqtt.fx denn das json Objekt an? Im Channel muss exakt dieses Topic angegeben werden.
Weiterhin brauchst Du den JSONPATH Transformation Service (muss installiert werden).
Mit Show Advanced bekommst Du zusätzliche Parameter zum konfigurieren, dort trägst Du bei incomming value transformation für den Batteriestatus z.B. JSONPATH:$.batt ein.
Weiterhin brauchst Du den JSONPATH Transformation Service (muss installiert werden).
Mit Show Advanced bekommst Du zusätzliche Parameter zum konfigurieren, dort trägst Du bei incomming value transformation für den Batteriestatus z.B. JSONPATH:$.batt ein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
Danke Udo, hat funktioniert.
Was muss ich eintragen um die „Location“ zu bekommen?
Gruss Wolf
Was muss ich eintragen um die „Location“ zu bekommen?
Gruss Wolf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Mclupo am 3. Jan 2022 07:56, insgesamt 3-mal geändert.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
Gruss Wolf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Owntracks über MQTT
Wenn Du weitere Daten aus dem selben JSON Objekt auswerten willst, ist tatsächlich ein anderer Weg sinnvoller.
Dazu nutzt Du dann das Profile. Aber: Erst mal einen Schritt zurück.
Du hast einen Channel vom Typ Number. Ein Number Channel kann eine Zahl speichern. Sonst nichts.
Das Profile beeinflusst, wie der Inhalt des Channels an das Item weitergeleitet wird.
Die incoming Value Transformation hingegen steuert, welcher Teil des eingehenden Datenstroms im Channel landet.
Da wir von einem JSON Objekt sprechen, welches wir nun komplett im Channel vorhalten wollen, muss der Channel Typ string sein.
Anschließend kannst Du ein Number Item (!) mit diesem string Channel verknüpfen und im Profile JSONPATH auswählen und dort den entsprechenden Path eintragen (also $.batt für die Batterie).
Dann kannst Du weitere Items hinzufügen, die natürlich jeweils zum erwarteten Datentypen passen müssen, also z.B. Location für die Position, falls im passenden Format geliefert (das wäre Länge,Breite[,Höhe])
Gesendet von iPad mit Tapatalk
Dazu nutzt Du dann das Profile. Aber: Erst mal einen Schritt zurück.
Du hast einen Channel vom Typ Number. Ein Number Channel kann eine Zahl speichern. Sonst nichts.
Das Profile beeinflusst, wie der Inhalt des Channels an das Item weitergeleitet wird.
Die incoming Value Transformation hingegen steuert, welcher Teil des eingehenden Datenstroms im Channel landet.
Da wir von einem JSON Objekt sprechen, welches wir nun komplett im Channel vorhalten wollen, muss der Channel Typ string sein.
Anschließend kannst Du ein Number Item (!) mit diesem string Channel verknüpfen und im Profile JSONPATH auswählen und dort den entsprechenden Path eintragen (also $.batt für die Batterie).
Dann kannst Du weitere Items hinzufügen, die natürlich jeweils zum erwarteten Datentypen passen müssen, also z.B. Location für die Position, falls im passenden Format geliefert (das wäre Länge,Breite[,Höhe])
Gesendet von iPad mit Tapatalk
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
Dank dir Udo, auch das habe ich kapiert.
Fehlt jetzt nur noch der Wert für die JSONPath Expression beim Location Item.
Was schreibe ich dort rein, um die drei Werte lat, lon und alt in das Location item zu bekommen?
Gruss Wolf
Fehlt jetzt nur noch der Wert für die JSONPath Expression beim Location Item.
Was schreibe ich dort rein, um die drei Werte lat, lon und alt in das Location item zu bekommen?
Gruss Wolf
Zuletzt geändert von Mclupo am 3. Jan 2022 21:49, insgesamt 1-mal geändert.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Owntracks über MQTT
Ja, wie gesagt (vorhin war ich mit dem iPad unterwegs, da war es etwas blöd, das nachzuschauen). direkt geht das nur, wenn der Wert in der entsprechenden Notation vorliegt, das ist hier leider nicht der Fall. Du brauchst also mindestens zwei weitere Number Items (wenn Du die Höhe auch möchtest drei), die Du alle mit dem selben Channel verknüpfst, nennen wir sie hier mal PosLat, PosLon und PosAlt. die bekommen entsprechend die Paths $.lat, $.lon und $.alt.
Dann brauchst Du noch eine Rule, welche aus den drei Einzelwerten eine Location macht:
Ungetestet
Das Item MyPosition kannst Du dann z.B. auf einer Karte anzeigen lassen.
Dann brauchst Du noch eine Rule, welche aus den drei Einzelwerten eine Location macht:
Code: Alles auswählen
rule "set location"
when
Item PosLat changed or // Breite hat sich geändert
Item PosLon changed or // Länge hat sich geändert
Item PosAlt changed // Höhe hat sich geändert
then
var Number nLon = null // Default Wert: null
var Number nLat = null // Default Wert: null
var Number nAlt = 0 // Default wert 0 (über Meeresspiegel)
if(PosLat.state instanceof Number) // falls gültige Breite
nLat = (PosLat.state as Number) // Breite übernehmen
if(PosLon.state instanceof Number) // falls gültige Länge
nLon = (PosLon.state as Number) // Länge übernehmen
if(PosLAlt.state instanceof Number) // Falls gültige Höhe
nAlt = (PosAlt.state as Number) // Höhe übernehmen
if(nLat === null || nLon === null) // falls Breite oder Länge ungültig
return; // Abbruch
MyPosition.postUpdate(nLon.toString+","+nLat.toString+","+nAlt.toString)
end

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
Danke, hat prima funktioniert.
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II
-
- Beiträge: 178
- Registriert: 6. Jun 2020 20:55
- Wohnort: Kirchheim Teck
Re: Owntracks über MQTT
Moin
Jetzt hab ich noch den Zustand, dass in das Item „region“ der gesamte owntracks string kopiert wird, weil das Feld „inregions“ bei manchen gesendeten Nachrichten nicht enthalten ist (bin eben nicht in einer deklarierten Owntracks Region). Jetzt könnte ich das Item „region“ auf Stringlänge testen und bei z.B. mehr als 15 Zeichen mit einen Dummy überschreiben.
Gibt es eine Möglichkeit diese Zuweisung zum Item bei ungültigem Wert vorher abzufangen?
Gruss Wolf
Jetzt hab ich noch den Zustand, dass in das Item „region“ der gesamte owntracks string kopiert wird, weil das Feld „inregions“ bei manchen gesendeten Nachrichten nicht enthalten ist (bin eben nicht in einer deklarierten Owntracks Region). Jetzt könnte ich das Item „region“ auf Stringlänge testen und bei z.B. mehr als 15 Zeichen mit einen Dummy überschreiben.
Gibt es eine Möglichkeit diese Zuweisung zum Item bei ungültigem Wert vorher abzufangen?
Gruss Wolf
OH 3.4.2 auf Raspi 4 mit Aeotec z-wave Stick gen 5+ und zigbee conbee II