Seite 1 von 1
Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 12:36
von Hille
Ich nutze für einige Schalter und Lampen das HomeKit Addon. Das funktioniert soweit problemlos. Nun möchte ich einen Temperaturwert ebenfalls dort anzeigen. Aber diesen Wert bekomme ich im HomeKit unter den Geräten nicht angezeigt bzw er steht mir zur Auswahl nicht zu Verfügung.
So sieht das Item aus
Code: Alles auswählen
String temperatur_wohnung "Wohnung [%s °C]" <self_temperature> {homekit="TemperatureSensor [minValue=10, maxValue=35] ", channel="exec:command:temperatur_wohnung:output"}
Wo liegt mein Fehler?
openHAB 3.3.0 (Raspbian Bullseye)
Re: Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 13:09
von udo1toni
Du versuchst einen String als Zahl zu nutzen, das geht nicht. Du musst das Item zu einem Number Item machen. Da der Wert von exec kommt, welches ausschließlich String anbietet, musst Du vermutlich schummeln und im Link ein Profile nutzen (in diesem Fall sowas wie JS mit einem Script, welches den Input einfach wieder ausgibt (ich gehe davon aus, dass exec einen reinen Zahlenwert als Text liefert, also z.B. "25.3").
Re: Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 13:17
von Hille
Ja, der wäre z.B. 25.3. Wie müsste das Item nun aussehen, wenn ich den Wert als Number ausgeben möchte bzw mit dem "Schummeln" habe ich nicht so richtig verstanden? Eventuell kannst du mir das einem Beispiel kurz erläutern.
Re: Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 13:43
von udo1toni
Z.B. so:
Code: Alles auswählen
Number temperatur_wohnung "Wohnung [%.1f °C]" <self_temperature> {homekit="TemperatureSensor [minValue=10, maxValue=35] ", channel="exec:command:temperatur_wohnung:output" [profile="transform:JS",function="dummy.js"]}
dummy.js kommt in den Ordner
/etc/openhab/transform/, mit folgendem Inhalt:
Das sollte schon ausreichen, am Ausgang des Profiles wird der gelieferte Wert automatisch als Zahl interpretiert.
Man könnte im Script noch sicherstellen, dass ausschließlich echte Zahlen weitergeleitet werden, das wäre dann auch sicher gegen ein fehlerhaftes Exec Script.
Selbstverständlich muss die JS Transformation installiert sein.
Es kann sogar sein, dass auch REGEX funktioniert, dann sähe der Profile-Teil so aus:
Re: Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 20:25
von Hille
Vielen Dank für deine Hilfe. Ich habe das nun so getestet, wie du es beschrieben hast. Ich habe sogar zusätzlich den Wert im bash Script, welches die Temperatur ausliest, per
manuell auf eine Zahl festgelegt. Trotzdem bekomme ich im HomeKit die Temperatur nicht angeboten. Woran könnte das noch liegen?
Re: Temperatur Sensor HomeKit
Verfasst: 11. Jul 2022 21:41
von udo1toni
Wird der Wert denn in openHAB als Nummer korrekt dargestellt?
Re: Temperatur Sensor HomeKit
Verfasst: 12. Jul 2022 10:57
von Hille
Ich konnte das Problem lösen. Ich habe das ITEM wie folgt geändert
Code: Alles auswählen
Number temperatur_wohnung "Wohnung [%s °C]" <self_temperature> {homekit="TemperatureSensor", channel="exec:command:temperatur_wohnung:output" [profile="transform:JS",function="dummy.js"]}
Im Endeffekt war anscheinend nur dieser Bereich nicht korrekt definiert