NEWS
Verfügbarkeit von Sensoren über Node Red überwachen
-
Ich glaube ich bin grade zu doof dafür haha
Ich habe eine Inject Node, mit der ich das Topic in die List Node schiebe:
Und der Debug Output ist dann ein Array von allen Datenpunkten, die dieses Zigbee Device hat:
Da stehen unter common.name auch alle Namen drin - aber eben die der ganzen Datenpunkte.
Den Namen vom Device finde ich da aber nicht, sondern nur die Namen der 9 Datenpunkte
EDIT: habe mittendrin ein anderes Zigbee Device genommen, also ob es 10 oder 9 DP sind spielt keine Rolle.
Der Punkt ist: Den Namen vom Zigbee Device bekomme ich nicht, sondern nur die Namen der DP unter dem Zigbee Device -
@schmetterfliege Keine Wild cards- die iobroker IN Node liefert doch alles - wenn Du es mit einer Inject Node versuchst nimm das topic der In- Node und ich glaube ich habe weder von Wildcards noch von Array ausgabe gepostet.
KEINE Wildcards, kein topic spezifizieren - sondern so wie ich es gepostet habe,.
-
Also statt dem Inject mache ich eine IN node mit dem Zigbee Device OHNE ".*" ?
Also muss die IN Node so aussehen?
-
@schmetterfliege Oh bitte - lass den Flow wie er ist und hänge die list Node dazwischen - wie ich sie gepostet habe:
-
aaaaaah, von den IN Nodes redest du!
Ich war die ganze Zeit in einem Test Flow in dem ich nur per Inject den namen von einem bestimmten Zigbee Device auslesen wollte -
@schmetterfliege sie Screenshot - lass die In-Node wie sie waren!!!! -
-
@schmetterfliege Na das kannst Du auch machen - das ist für das System sogar besser - die Namen nur einmal auszulesen.
Das ist eigentlich besser. Warte mal - ich mach das dann mal:
Dann musst aber die function Nodes wieder auf den ursprünglichen Stand zurück setzen.
-
Ok, ich warte :D.
Habe mal die list Node so wie von dir beschrieben hinzugefügt:
Der Output den ich abgreife sieht dann so aus:
Und da ist - wie ich auch erwarte würde - nur der Name von dem DP Temperature - und der heißt Temperature^^
Weil: es wird ja nur der DP temperature und humidity weitergegeben -
@schmetterfliege Ok - wir machen es dann so - wie ursprünglich mach die list Nodes wieder da raus und wir suchen die Namen aus den Geräten
-
@mickym
Ich glaube der Weg mit den List Nodes funktioniert bei dir, weil du den Datenpunkten andere Namen gegeben hast.
Bei dir hat der DP für die Temperatur den Namen "Bad Thermometer Temperature".Bei mir heißen die bei allen devices einfach nur "Temperature", "Humidty" etc.
Nur das "Device" hat den von mir gesetzten Namen.
Gibt es da eine Option dass der Name den ich im Zigbee Adapter vergebe auch in die ganzen DP übernommen wird?
Oder hast du die alle Manuell umbenannt? -
@schmetterfliege Ich mach das gleich mit den Geräten - wie gesagt bau den Flow wieder auf das Original auf heute morgen zurück- Ich habs gleich - Geduld!!!!
-
Schon passiert
Keine Hektik, versprochen!
Ich wundere mich bloß wieso man aus den DP die Namen auslesen kann, nicht aber den Namen vom Device selbst, also quasi dem "Ordner" in dem die einzelnen DP drin sind^^ -
@schmetterfliege So hier liest Du die Zigbee Namen aus und werden der ID zugeordnet:
In diesem Fall lesen benötigen wir auch keine Werte sondern lesen nur die Objekte vom Typ Gerät:
Das einmalige Einlesen in der Inject Node kannst selbst setzen.
-
Vielen Dank!
Mein Problem habe ich damit auch endlich kapiert!
Um den Namen vom "Device" auszulesen, muss ich zigbee.0 auslesen, nicht das einzelne Device -
@schmetterfliege Ja in dem Fall ist es wichtig - dass der Device Filter der List Node funktioniert - das war leider auch nicht immer so. Sonst bekommst nämliche mit dem Wildcard alle Datenpunkte unter zigbee.0. geliefert.
-
Ich habs irgendwie wieder kaputt gemacht..
Lassen wir mal das mit der aktualisierung weg, ich möchte nur per Knopfdruck eine Test Tabelle erstellen:
Wenn ich da links triggere, bekomme ich die 18 Flow Variablen die ich haben möchte. Die sind auch alle korrekt, mit id, name, temp und hum.
Die Switch Node schaut ob ihm Namen "Multisensor" vor kommt, damit erhalte ich die 18 relevanten Sensoren.
Die Tabelle ist so konfiguriert:
Aussehen tut sie aber so:
An der Join Node sollte das nicht liegen, oder? Die sieht so aus:
Die Function node sieht so aus:
-
@schmetterfliege Was hat den die Gerätenname Node in dem Flow zu suchen?
-
Der heißt nur so, mit dem setze ich doch die Flow Variablen, oder nicht?
-
@schmetterfliege Mit der Gerätenamen Node setzt Du nur die Namen in den Objekten der Flow variablen.
Deswegen ist dieser Teil völlig unabhängig von den Werten und sollte mit der Tabelle gar nichts zu tun haben. Die ID wolltest Du gar nicht in der Tabelle haben und warum ist dann dies in der ui_table. Die id dient nur der internen Adressierung.
So und Dein Flow geht deswegen nicht, weil die split Node nichts zum aufteilen hat. Du musst ja erst die payload mit dem Inhalt der Flowvariablen füttern.
Trenn bzw. lass mal das Namen auslesen völlig getrennt vom eigentlich Flow.
So sollte Dein Flow aussehen:
und wenn Du die Ausgabe der Flow variablen testen willst - dann hängst Du eine Inject Node vor die setze msg. payload
Aus meiner function Node - kommt nichts raus.
Das return.msg habe ich auskommentiert.
-
@schmetterfliege sagte in Verfügbarkeit von Sensoren über Node Red überwachen:
Der heißt nur so, mit dem setze ich doch die Flow Variablen, oder nicht?
Wenn Du allerdings code in Deiner function Node verwendest - den ich nicht kenne - dann weiß ich es natürlich nicht.