@paul53 Vielen, vielen Dank! Das ist genau das, was ich brauche. Ich hatte es mit getState versucht...
Besten Dank nochmal
@paul53 Vielen, vielen Dank! Das ist genau das, was ich brauche. Ich hatte es mit getState versucht...
Besten Dank nochmal
Ich grüße euch, ich bräuchte etwas Hilfe dabei, den Namen eines Homematic Gerätes auszulesen.
Mein Ziel ist folgendes:
ich möchte durch all meine Heizthermostate (HM-CC-RT-DN) iterieren und überprüfen, ob ein Fehler ausgegeben wird. Wenn dies der Fall ist, möchte ich einen String konkatenieren, der der Form "NAME: FEHLER" entspricht.
Den Fehlercode auszulesen und zu übersetzen ist kein Problem, aber ich weiß nicht, wie ich an den Namen "ran" komme. In der Homematic-Software konnte ich die Geräte ja benennen. In der RAW Übersicht sähe es exemplarisch so aus.
Wie komme ich an den Namen bei Common ran? Ich leider auch im Forum nichts gefunden.
Vielen lieben Dank!
{
"from": "system.adapter.hm-rega.0",
"ts": 1547810289799,
"common": {
"name": "170-N",
"icon": "/icons/83_hm-cc-rt-dn_thumb.png"
},
"native": {
"ADDRESS": "[***]",
"AVAILABLE_FIRMWARE": "1.5",
"FIRMWARE": "1.5",
"INTERFACE": "[***]",
"PARENT": "",
"TYPE": "HM-CC-RT-DN",
"FLAGS": 1,
"RF_ADDRESS": 6117841,
"ROAMING": 0,
"RX_MODE": 14,
"UPDATABLE": 1,
"VERSION": 29,
"CHILDREN": [
"[***]:0",
"[***]:1",
"[***]:2",
"[***]:3",
"[***]:4",
"[***]:5",
"[***]:6"
],
"PARAMSETS": [
"MASTER"
]
},
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"_id": "hm-rpc.0.[***]",
"type": "device"
}
@paul53 Vielen Dank! .lc ist wohl wonach ich gesucht habe!
Danke auch für den Schedulehinweis. Den habe ich erstmal bewusst weggelassen, um zu testen, ob ich denn überhaupt an die richtigen Werte komme.
@sigi234 Danke schon mal! Ich bin mir nur noch unsicher, wie ich an die Werte komme. Mit "w00281" oder "vis.0.w00281" zeigt mir mein Skript an, dass der Wert nicht vorhanden ist.
Grüßt euch alle! Ich habe hier seit einiger Zeit im Forum mitgelesen und dadurch schon einiges an Hilfe erhalten, aber für die letzten Details wollte ich noch einmal nach Hilfe oder Ideen fragen. Folgende Visualisierung ist bereits vorhanden:
Visualisiert werden Fensterkontakte und Heizthermostate aus dem Hause Homematic.
Fensterkontakte: HM-Sec-SCo
Thermostate: HM-CC-RT-DN
Die Buttons unter den Heizungsreglern dienen dazu, möglichst schnell zwischen manuellen und automatischen Modi hin und her zu schalten.
Was ich noch optimieren möchte, sind allerdings die Daten links und rechts von den Fenstericons. Sie zeigen das Datum an, an dem das Fenster das letzte Mal geöffnet oder geschlossen wurde. Ich nutze das "Last change Timestamp" widget.
Ich würde es noch gerne schaffen, dass ein Datum rot hinterlegt wird, wenn ein Fenster länger als 7 Tage geschlossen ist. Zu diesem Test habe ich testweise mit Blockly und Javascript gearbeitet. Wenn das heutige Datum minus dem letzten Timestamp größer als 604800000 (entspricht sieben Tagen) ist, sollte eine Telegram Nachricht an mich versendet werden.
const dateToday = new Date().getTime();
console.log(dateToday);
if(dateToday - getState("hm-rpc.0.SERIALNUMBER.1.STATE").ts > 604800000 && (getState("hm-rpc.0.SERIALNUMBER.1.STATE").val == false)){
sendTo("telegram.1", "send", {
text: ('Fenster offen:' + 'hm-rpc.0.SERIALNUMBER.1.STATE')
});
}
Ersetzt man "Serialumber" durch die Nummer des Fensterkontaktes funktioniert das Script eingeschränkt. Bei Homematic ist bekannt (bzw. den Fensterkontakten), dass ein Timestamp allein bei einem Zugriff aktualisiert wird. Das ist auch bei meinem Skript der Fall, weswegen ich glaube, dass eine Ausarbeitung wenig zielführend wäre.
Deswegen würde ich gerne weiter mit dem "Last change Timestamp" arbeiten. Interessanterweise wird dieser nicht aktualisiert, wenn mein Skript auf den Timestamp des Geräts zugreift. Allerdings weiß ich wiederum nicht, wie ich auf den Wert des Widgets zugreifen kann, bzw. damit Variablen setzen oder andere Widgets steuern könnte.
Wenn jemand Anregungen für mich hätte, wäre ich euch sehr dankbar!