NEWS
[Gelöst] Benötige Hilfe mit Node-Red in Verbindung mit homee
-
@oli sagte in Benötige Hilfe mit Node-Red in Verbindung mit homee:
den unteren Teil des ersten Flow kann ich löschen und dafür den neuen Flow Konsolidierung importieren?
Den importierst Du erst - wenn Du genügend geübt hast. Es geht mir nicht darum, dass Du jetzt den finalen Flow hast. Ich dachte Du willst das erst mal verstehen????
Lass das mit der Konsolidierung erst mal weg. Den kannst ja später immer noch importieren.
-
@mickym
deswegen frage ich ja nach, weil ich es verstehen will -
@oli sagte in Benötige Hilfe mit Node-Red in Verbindung mit homee:
@mickym
deswegen frage ich ja nach, weil ich es verstehen willGut also Konsolidierungsflow für später aufheben.
- Die anderen Nodes kannst importieren - und statt "Ein Gerät" - schließt Du Deinen anderen Flow an, der Dir Updates von Deinen Geräten liefert.
Im Prinzip brauchst Du auch das manuelle Antriggern dann nicht mehr. Das ist nur damit Du sehen kannst, wie Du hinten mit JSONATA verschiedene Informationen aus deinen Node-Objekten holst. (Ich habe ja nur mal den phonetischen_name herausgeholt).
-
so, jetzt habe ich mal mit dem oberen Flow etwas gespielt und mir zusätzliche Daten geholt und schon kommt die nächste Frage.
Wie erstelle ich mir daraus ein Json, was ich in der VIS in einem Tabellen-Widget anzeigen lassen kann?
Folgende Spalten würde ich benötigen:
Name = Gerätename
Gerätetyp = Gerätetyp
Protokoll = Funkprotokoll (ZWave, ZigBee usw)
Gerätestatus = Gerätestatus (verfügbar, .....)Die Daten werden im Flow alle schon abgefragt.
-
Na nachdem ich nicht so fit bin was VIS betrifft, wollt ich zurückfragen:
Es geht also darum ein JSON aufzu bauen, wie hier:
https://www.smarthome-tricks.de/software-iobroker/iobroker-vis-json-table-widget-teil-1-basics/Dann lass uns nochmal sicher gehen:
{ "name": name, "type": type, "protocol": protocol, "state" : state }
Die Überschriften bzw. das Mapping macht das Widget ja selbst.
Kannst Du mir vielleicht noch sagen, welche Eigenschaft dem type entspricht? (cube_type ??)
Gibts irgendwie ein lookup, welche Protokolle es gibt oder sind die 4 Protokolle bereits vollständig?=========================================================================================
Entspricht type - den Services - und möchtest Du die übersetzt haben?
Ansonsten müsstest Du ggf. die Eigenschaften, der Protokolle halt ergänzen:
{"1":"ZWave","2":"Zigbee","3":"EnOcean","9":"WLan"}
bei den Typen entsprechend.
============================================================================
So nachdem Du Dich gerade nicht meldest - hier die Tabelle mit den Eigenschaften wie oben:
die musst halt einfach dahinter hängen - wo alle Geräte noch beisammen sind:
-
ich verwende für die VIS den Materialdesign Adapter und erstelle mir per Skript schon ein paar Tabellen, vielleicht hilft dir die Json Ausgabe dabei
[{"id":"FloodDetector-23","sensor":"Küche Wassersensor EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 95 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"FourButtonRemote-64","sensor":"Schlafzimmer Schalter Nachtlicht DG","betrieb":"Batterie","zustand":" <font color=\"#8f8f8f\"> N/A","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_0.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-20","sensor":"Küche Kühlschrank EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-33","sensor":"Schlafzimmer Klimaanlage DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-34","sensor":"Flur Tablet EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-42","sensor":"Wohnzimmer Weinkühlschrank EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-56","sensor":"Büro Computer EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-57","sensor":"Küche Geschirrspüler EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-58","sensor":"Wohnzimmer Multimedia EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-59","sensor":"Keller Waschmaschine UG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"MeteringPlug-6","sensor":"Flur Vitrine Licht DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-35","sensor":"Wohnzimmer Stehlampe EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-36","sensor":"Wohnzimmer Bar EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-38","sensor":"Wohnzimmer Vitrine EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-39","sensor":"Wohnzimmer TV-Schrank EG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-63","sensor":"Schlafzimmer Nachtlicht Oliver DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-65","sensor":"Schlafzimmer Nachtlicht Kirsten DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-66","sensor":"Schlafzimmer Nachtlicht TV DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OnOffPlug-68","sensor":"Schlafzimmer Luftreiniger DG","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-10","sensor":"WC Fenster EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-11","sensor":"Wohnzimmer Balkontüre EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 90 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-12","sensor":"Esszimmer Balkontüre EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-13","sensor":"Bad Fenster DG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 86 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-8","sensor":"Büro Fenster Links EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"OpenCloseSensor-9","sensor":"Büro Fenster Rechts EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 90 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"PresenceDetectorWithTemperatureAndBrightnessSensor-70","sensor":"Schlafzimmer Bewegungsmelder Oliver DG","betrieb":"Batterie","zustand":" <font color=\"#8f8f8f\"> N/A","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_0.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"PresenceDetectorWithTemperatureAndBrightnessSensor-71","sensor":"Schlafzimmer Bewegungsmelder DG","betrieb":"Batterie","zustand":" <font color=\"#8f8f8f\"> N/A","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_0.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-1","sensor":"Büro Heizung EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 55 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_60.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-2","sensor":"Wohnzimmer Heizung Links EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 85 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-26","sensor":"Bad Heizung DG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 85 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-4","sensor":"Esszimmer Heizung EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 95 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-5","sensor":"WC Heizung EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 55 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_60.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RadiatorThermostat-62","sensor":"Wohnzimmer Heizung Balkon EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 55 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_60.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"RoomThermostat-19","sensor":"Wohnzimmer Raumthermostat EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 77 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_80.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"SmokeDetector-14","sensor":"Flur Rauchmelder UG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 76 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_80.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"SmokeDetector-15","sensor":"Flur Rauchmelder EG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"SmokeDetector-16","sensor":"Flur Rauchmelder DG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 98 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_100.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"SmokeDetector-18","sensor":"Schlafzimmer Rauchmelder UG","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 88 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_90.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"SmokeDetector-45","sensor":"Schlafzimmer Rauchmelder DG","betrieb":"Batterie","zustand":" <font color=\"red\"> 12 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_20.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"TemperatureAndHumiditySensor-43","sensor":"Wohnzimmer Temperatur Weinkühlschrank EG","betrieb":"Batterie","zustand":" <font color=\"#8f8f8f\"> N/A","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_0.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"TemperatureAndHumiditySensor-44","sensor":"Wohnzimmer Temperatur Weinkühlschrank EG","betrieb":"Batterie","zustand":" <font color=\"#8f8f8f\"> N/A","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_0.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/homeek.png","adapter":"homee"},{"id":"02-00-00-6b-4f-a0","sensor":"Aussenraum","betrieb":"Batterie","zustand":" <font color=\"yellow\"> 27 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_30.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/netatmok.png","adapter":"homee"},{"id":"03-00-00-09-89-18","sensor":"Netatmo Schlafzimmer","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 76 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_80.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/netatmok.png","adapter":"homee"},{"id":"03-00-00-0a-2b-4e","sensor":"Netatmo Büro","betrieb":"Batterie","zustand":" <font color=\"lightgreen\"> 49 %","image":"/vis.0/main/img/Meine Icons/Batterie/Batterie_50.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/netatmok.png","adapter":"homee"},{"id":"70-ee-50-6b-5f-4e","sensor":"Mein Haus (Netatmo Wohnzimmer)","betrieb":"Strom","zustand":" <font color=\"green\"> 100 %","image":"/vis.0/main/img/Meine Icons/Batterie/Strom.png","logo":"/vis.0/main/img/Meine Icons/Tabellen/netatmok.png","adapter":"homee"}]
Den Status und und das Protokoll müsste man wahrscheinlich übersetzten
Status: 1 = Verfügbar, 2 = nicht verfügbar, 3 = wird aktualisiert
Protokoll: 1 = ZWave, 2 = ZigBee, 3 = EnOcean, 9 = WLanWidget-Einstellungen
Die Tabelle sieht dann so aus:
-
@oli Das habe ich doch schon alles gemacht, schaus Dir halt an. Es geht doch nur noch um den Typ. Aktualisert ist 12 und nicht 3.
[{"name":"DG / Schlafzimmer / Bewegungsmelder / Kirsten","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Bewegungsmelder Oliver","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Luftreiniger","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Nachtlicht TV","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Nachtlicht Kirsten","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Schalter Nachtlicht","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Schlafzimmer / Nachtlicht Oliver","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"EG / Wohnzimmer / Heizung Balkon","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"UG / Keller / Waschmaschine","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Multimedia","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"DG / Flur / Rauchmelder","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Flur / Rauchmelder","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"UG / Flur / Rauchmelder","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"DG / Bad / Fenster","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Esszimmer / Balkontüre","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Balkontüre","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / WC / Fenster","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Büro / Fenster Rechts","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Büro / Fenster Links","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"DG / Schlafzimmer / Rauchmelder","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"UG / Schlafzimmer / Rauchmelder","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Büro / Heizung","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Vitrine","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"DG / Flur / Vitrine Licht","type":1,"protocol":"ZWave","state":"inaktiv"},{"name":"EG / Wohnzimmer / Temperatur Weinkühlschrank","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"EG / Wohnzimmer / Heizung Links","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / TV-Schrank","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"EG / Esszimmer / Heizung","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / WC / Heizung","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Weinkühlschrank","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Raumthermostat","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Büro / Computer","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Küche / Kühlschrank","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Küche / Geschirrspüler","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Küche / Wassersensor","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"DG / Bad / Heizung","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Netatmo","type":8,"protocol":"WLan","state":"aktiv"},{"name":"Netatmo Aussenraum","type":8,"protocol":"WLan","state":"aktiv"},{"name":"EG / Büro / Netatmo","type":8,"protocol":"WLan","state":"aktiv"},{"name":"DG / Schlafzimmer / Netatmo","type":8,"protocol":"WLan","state":"aktiv"},{"name":"DG / Schlafzimmer / Klimaanlage","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Flur / Tablet","type":1,"protocol":"ZWave","state":"aktiv"},{"name":"EG / Wohnzimmer / Stehlampe","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"EG / Wohnzimmer / Bar","type":2,"protocol":"Zigbee","state":"aktiv"},{"name":"EG / Küche / Temperatur Kühlschrank","type":2,"protocol":"Zigbee","state":"aktiv"}]
Na egal - Du siehst wie einfach man solche JSONS erstellen kann - das kannst ja dann selbst umsetzen.
-
@mickym
sorry, hat sich überschnitten, du bist zu schnell für mich, bin gerade am testen -
Ok - hat bissi gedauert - weil ich den Filter nur mit den Klammern machen wollte - aber hier noch eine in meinen Augen elegantere Möglichkeit, weil man damit auch noch weitere Eigenschaften von Protokollen oder Status mappen kann.
Man macht also nicht einfach ein Objekt mit dem status als key (Eigenschaft), sondern erstellt komplette Arrays, die man dann mit der $single Funktion filtert.
Das sieht dann so aus:
Die Daten die man also bekommt sind Objekte aus Arrays. Hier zum Beispiel die Protokolle:
[ { "id": 1, "name": "ZWave" }, { "id": 2, "name": "Zigbee" }, { "id": 3, "name": "EnOcean" }, { "id": 9, "name": "WLan" } ]
Der JSONATA Code schaut dann eigentlich easy aus (aber musste selbst wieder bissi rumtüfteln)
payload.{"name" :name, "type" : cube_type, "protocol" : $single($$.protocols, function($v){$v.id = protocol}).name, "state" : $single($$.states, function($v){$v.id = state}).name }
Hier wieder zum Ausprobieren:
Jedenfalls sieht man mit wie wenig Code - man mit JSONATA solche Objekte erzeugt ohne wie mit Javascript oder Blocklies sich mit Schleifen rumzuschlagen.
Es ist zwar am Anfang etwas undurchsichtig, aber es lohnt sich probiert so was einfach mit dem try aus. Ihr könnt so was abspeichern.
Hier mal meine Test mit Deinen Geräten.
https://try.jsonata.org/LdlRlT3hR
Wenn man dann an dem Code etwas verändert, sieht man sofort das Ergebnis und kann es dann wenn man zufrieden ist, einfach in die Change Node kopieren.
Je mehr ich damit beschäftige, desto genialer finde ich es - und erspart Spaghetti-Code.
Warum das so praktisch ist wenn man arrays mit Objekten macht - habe ich hier mal kurz demonstriert:
Man sieht man kann damit ganz schnell auch mehrsprachig arbeiten und ändert nur einen Parameter in seinem JSONATA-Code.
-
funktioniert alles super, wenn du mir jetzt noch verrätst, wie ich den Status mit verschiedenen Schriftfarben belegen kann?
Verfügbar = #8f8f8f
nicht verfügbar = rot
wird aktualisiert = orangeDanach bin ich mit dem ersten Flow durch und kann ihn dir mal posten
-
@oli sagte in Benötige Hilfe mit Node-Red in Verbindung mit homee:
Ja das sind die beiden Nodes? Für die Version mit den Arrays zum Lookup - und gibts damit ein Problem?
-
sorry falsche Taste erwischt, habe ein Edit gemacht oben gemacht
-
@oli sagte in Benötige Hilfe mit Node-Red in Verbindung mit homee:
funktioniert alles super, wenn du mir jetzt noch verrätst, wie ich den Status mit verschiedenen Schriftfarben belegen kann?
Verfügbar = #8f8f8f
nicht verfügbar = rot
wird aktualisiert = orangeDanach bin ich mit dem ersten Flow durch und kann ihn dir mal posten
Du meinst
"state": " <font color=\"#8f8f8f\"> aktiv" "state": " <font color=\"rot\"> inaktiv" "state": " <font color=\"orange\"> wird aktualisiert"
-
@mickym
ja, und wo trage ich das ein?Sorry, eine Frage habe ich trotzdem noch, kannst du mir sagen, warum der Eintrag der Tabelle im Exporer im Klartext kommt und wenn ich den Datenpunkt öffne nur Objekt darin steht?
-
@oli Wenn Du den Wert in einen Datenpunkt schreiben willst, musst Du das Objekt als JSON String abspeichern. Also vorher noch eine JSON Node vor die iobroker_out Node machen.
-
@mickym
super, hat funktioniert -
@oli So ab jetzt kannst aber selber rumprobieren. Nun zeigt sich gleich der Vorteil der 2. Variante.
Du kannst jetzt ein weiteres Attribute in deine lookup Objekte aufnehmen. Habe also nun color mit aufgenommen:
Also das states - Array enthält einfach eine neue Eigenschaft:[ { "id": 1, "name": "aktiv", "color": "#8f8f8f" }, { "id": 2, "name": "inaktiv", "color": "rot" }, { "id": 12, "name": "wird aktualisiert", "color": "orange" } ]
Das doofe sind nur diese Zeichen für den HTML-Code.
Aber finally here is the JSONATA Code:payload.{"name" :name, "type" : cube_type, "protocol" : $single($$.protocols, function($v){$v.id = protocol}).name, "state" : ' <font color=\\"' & $single($$.states, function($v){$v.id = state}).color & '\\"> ' & $single($$.states, function($v){$v.id = state}).name }
Nun solltest Du aber übertragen und selbst die Zusammenhänge begriffen haben.
Wenn Du also die Farbe ändern willst, dann musst Du nur noch die Farbe in den Objektes des states Array ändern.
-
@mickym
sorry, ich bin wahrscheinlich echt zu doof für das ProgrammEinstellungen Tabelle 3
Einstellungen JSON
Ausgabe Debug
{"name":"DG / Schlafzimmer / Bewegungsmelder / Kirsten","type":"# Philips Hue Bewegungsmelder","protocol":"Zigbee","state":" <font color=\\\"green\\\"> verfügbar"}
Ausgabe Datenpunkt
{ "name": "DG / Schlafzimmer / Bewegungsmelder / Kirsten", "type": "# Philips Hue Bewegungsmelder", "protocol": "Zigbee", "state": " <font color=\\\"green\\\"> verfügbar" },
Was mach ich bitte falsch?
-
Was stimmt denn daran nicht?
{"name":"DG / Schlafzimmer / Bewegungsmelder / Kirsten","type":2,"protocol":"Zigbee","state":" <font color=\\\"#8f8f8f\\\"> aktiv"}
=============================================================================
Ansonsten wenn das mit dem Maskieren doppelt gemoppelt ist, dann machst einfach den Schrägstrich weg:
dann wird das automatisch gemacht:
{"name":"DG / Schlafzimmer / Bewegungsmelder / Kirsten","type":2,"protocol":"Zigbee","state":" <font color=\"#8f8f8f\"> aktiv"}
das Debug-Fenster stellt das Anführungszeichen eh korrekt dar und muss nicht demaskiert werden:
Ist halt immer eine Rumprobiererei mit den blöden Codes.
-
@mickym
kaum weiß man wo es steht, schon klappt es