Closed Richtation closed 2 years ago
Versuch mal folgendes Inject-Node an Deinem HomeKit-Gerät – dann sollte die Temperatur auch unter Null fallen. ;-)
[{"id":"fb7ed0ea.1cd11","type":"inject","z":"50dbdcf2.3d8994","name":"Allow Temperature < 0°C","props":[{"p":"payload","v":"{ \"minValue\": -100 }","vt":"json"},{"p":"topic","v":"0/CurrentTemperature","vt":"string"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"0/CurrentTemperature","payload":"{ \"minValue\": -100 }","payloadType":"json","x":470,"y":100,"wires":[["df91bf8b.f595a","29649e1b.2b6a8a","236d2961.9029fe","525f9716.9b40b8","5f16cbdb.20bc0c","20f74f55.5bc27"]]}]
Uih, ich werd verrückt! 🥇 Ist der Hammer, klappt wie's soll! Vielen vielen Dank 👍
P.S: warum ist das nicht standardmäßig mit drinnen oder könnte man da nen Button/Checkbox in die Node mit reinmachen, damit das ggf. auch bei anderen klappt?
Nunja. Es wäre ja kein Universal Node, wenn da schon vorab Temperatur-Spezifika mit drin wären, oder?
Freut mich, dass ich helfen konnte. ;-)
Hi @dehsgr , vielen vielen Dank! Ok, verzeih dann noch eine Frage: muss ich jede Spezifika in dieser Form bei der Node mit reingeben? Lese ich die aus den Characteristics mit raus? Da dort steht:
format: Formats.FLOAT, perms: [Perms.NOTIFY, Perms.PAIRED_READ], unit: Units.CELSIUS, minValue: -270, maxValue: 100, minStep: 0.1,
bin ich irgendwie davon ausgegangen, dass ich mich innerhalb des Rahmens (minValue und maxValue) einfach mit der passenden Zahl (Formats.Float) bewegen kann. Woher erkenne ich, welche Spezifika ich mir anschauen muss?
P.P.S: hättest du noch einen Tip für mich, wo/wie man ein weiteres Homekit erzeugt, dessen Spezifika nicht in der Liste steht? Ich hätte gern „Bodenfeuchtigkeitssensoren“, die halt auch nicht bei nem Raum sich mit den Werten der Luftfeuchtigkeitssensoren zum allgemeinen Durchschnitt vermischen, wenn du weißt, was ich meine… Vielen vielen Dank!
Nein. Die eine Spezifika reicht m.W. Mit dem Luftfeuchtigkeitssensor kann ich Dir so spontan leider auch nicht weiterhelfen. Hast Du schon einen Blick in die Anleitung/Wiki geworfen?
Hello,
Ich habe RedMatic auf dem Raspberry mit "redmatic-homekit" in der Version 3.3.0 installiert. Ebenso ein paar Homematic Temperatur&Luftfeuchtigkeitssensoren (HM-WDS40-TH-I) sowie ein paar ESP8266 mit DHT22 im Einsatz - letztere schicken die Daten via MQTT rein. Zusätzlich speichere ich die Werte noch in einer InfluxDB um sie via Grafana zu visualisieren.
Jetzt habe ich mir Flows angelegt, um MQTT an ein Homekit-Device zu übergeben (und dann an die Influx) - soweit alles gut und positive Werte sind auch super, aber sobald die Temperatur unter 0 geht zeigt er keine negativen Werte an sondern immer nur 0,0. Wenn ich die Werte aus dem HomematicGerät übergebe, wird ein negativer Wert sauber übergeben. Die negativen Werte kommen auch sauber in InfluxDB und Grafana an.
Ich habe ein Universal-Device/Node genommen und dort 2 Service Definitions für Temperatur und Luftfeuchtigkeit hinterlegt. Dann habe ich mir die https://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/definitions/CharacteristicDefinitions.ts angeschaut. Hier steht:
`/**
Characteristic "Current Temperature" */ export class CurrentTemperature extends Characteristic {
public static readonly UUID: string = "00000011-0000-1000-8000-0026BB765291";
constructor() { super("Current Temperature", CurrentTemperature.UUID, { format: Formats.FLOAT, perms: [Perms.NOTIFY, Perms.PAIRED_READ], unit: Units.CELSIUS, minValue: -270, maxValue: 100, minStep: 0.1, }); this.value = this.getDefaultValue(); } } Characteristic.CurrentTemperature = CurrentTemperature; ` Somit bin ich davon ausgegangen, dass ich ein "parseFloat()" machen muss, wenn der Wert aus MQTT reinkommt, um ihn in eine Number zu konvertieren. Dies macht der Flow und übergibt es dann mit entsprechenden topic an das Homekit Device (siehe Bild).
Ich habe es auch mit "Number()" versucht, aber auch das macht keinen Unterschied. Was ich nicht verstehe ist, wieso es bei den normalen Homekit-Devices ohne Probleme geht. Auch bei positiven Zahlen, bei negativen aber nicht aber diese trotzdem bei InfluxDB als Type "number" sauber ankommen und ausgelesen werden können…
Vielen Dank für eure Unterstützung und einen guten Rutsch.