NEWS
Newbie Einzelnen Wert von Contact-Entity anzeigen
-
@mickym
So, konnte deiner Anleitung folgen und di ersten Werte so "erstellen".
(und Node Red zumindest etwas "verstehen", habe noch nie mit einer grafischen Erstellung von "Scripten" oder "Abläufen" zu tun gehabt!)Danke!
Nur eine Frage (evtl. an andere), ich stehe ja dann letztlich vor der Entscheidung, Node red oder blockly zu nutzen.
Wie würde das ganze in blockly ausschauen?
Wie kann ich dort den JSON String in einzelne "Variablen" aufsplitten? -
So,
erste Versuche in blockly ..
(ioBroker ist auf Deutsch, aber blokcly ist "english")Soweit kam ich, aber Object-ID "JSON" fehlt komplett, also wohl der Teil, wo der JSON String in einzelne Werte "gesplittet" wird.
Muss da noch ein Adapter installiert werden?
-
So,
erste Versuche in blockly ..
(ioBroker ist auf Deutsch, aber blokcly ist "english")Soweit kam ich, aber Object-ID "JSON" fehlt komplett, also wohl der Teil, wo der JSON String in einzelne Werte "gesplittet" wird.
Muss da noch ein Adapter installiert werden?
@topsurfer Bei JSON bzw default muss Dein Datenpunkt rein, der Dein JSON String im MQTT enthält. Also der zigbee Pfad oder das Topic was Du in der iobroker In Node im Node-Red geschrieben hast. Das ganze Objekt wird dann wohl vom JSON String automatisch umgewandelt indem Du diesen Baustein verwendest. Über Wert wird der JSON String in diesen Blocklybaustein geladen und quasi implizit in ein Objekt umgewandelt - das was ich meinte noch konvertieren zu müssen. Das muss man anscheinend nicht (so verstehe ich das Blockly) - aber genaueres wird sicher ein Blockly-Spezialist erklären können.
Über die Attribute greifst Du dann auf die Eigenschaften des Objektes zu. Das ist was Du mit payload.battery im NodeRed rausgezogen hast. Die ObjectID ist ein von Dir selbst erstellter Datenpunkt unter 0_userdata.0 in den Du diesen Wert schreibst.
-
So,
erste Versuche in blockly ..
(ioBroker ist auf Deutsch, aber blokcly ist "english")Soweit kam ich, aber Object-ID "JSON" fehlt komplett, also wohl der Teil, wo der JSON String in einzelne Werte "gesplittet" wird.
Muss da noch ein Adapter installiert werden?
@topsurfer sagte: Object-ID "JSON" fehlt komplett,
Da muss der Datenpunkt "mqtt.0.zigbee2mqtt.Contact_01", der JSON enthält, zugewiesen werden.
Den "update"-Blöcken müssen die eigenen Datenpunkte unter "0_userdata.0" zugewiesen werden. Erstelle einen Datenpunkt "0_userdata.0.Kontakt01.Kontakt" vom Typ "boolean" und einen weiteren "0_userdata.0.Kontakt01.Batterie" vom Typ "number".
-
@topsurfer Bei JSON bzw default muss Dein Datenpunkt rein, der Dein JSON String im MQTT enthält. Also der zigbee Pfad oder das Topic was Du in der iobroker In Node im Node-Red geschrieben hast. Das ganze Objekt wird dann wohl vom JSON String automatisch umgewandelt indem Du diesen Baustein verwendest. Über Wert wird der JSON String in diesen Blocklybaustein geladen und quasi implizit in ein Objekt umgewandelt - das was ich meinte noch konvertieren zu müssen. Das muss man anscheinend nicht (so verstehe ich das Blockly) - aber genaueres wird sicher ein Blockly-Spezialist erklären können.
Über die Attribute greifst Du dann auf die Eigenschaften des Objektes zu. Das ist was Du mit payload.battery im NodeRed rausgezogen hast. Die ObjectID ist ein von Dir selbst erstellter Datenpunkt unter 0_userdata.0 in den Du diesen Wert schreibst.
-
So,
erste Versuche in blockly ..
(ioBroker ist auf Deutsch, aber blokcly ist "english")Soweit kam ich, aber Object-ID "JSON" fehlt komplett, also wohl der Teil, wo der JSON String in einzelne Werte "gesplittet" wird.
Muss da noch ein Adapter installiert werden?
@topsurfer Falls Du wirklich alle Datenpunkte eines JSON Strings in einzelne Datenpunkte schreiben willst, was ich eigentlich unsinnig finde und kannst Du auch im NodeRed meinen Flow verwenden - der wandelt JSON Strings automatisch in Datenpunkte um:
https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur/14Unter Punkt 6 siehst Du wie ein JSON String in einzelne Datenpunkte in einem Baum erstellt werden. Allerdings würde ich es auch wenn es am Anfang schön aussieht auf Dauer nicht empfehlen, weil Du alle Daten hast und eigentlich nur für Visualisierung eigene Datenpunkte brauchst.
-
@topsurfer Falls Du wirklich alle Datenpunkte eines JSON Strings in einzelne Datenpunkte schreiben willst, was ich eigentlich unsinnig finde und kannst Du auch im NodeRed meinen Flow verwenden - der wandelt JSON Strings automatisch in Datenpunkte um:
https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur/14Unter Punkt 6 siehst Du wie ein JSON String in einzelne Datenpunkte in einem Baum erstellt werden. Allerdings würde ich es auch wenn es am Anfang schön aussieht auf Dauer nicht empfehlen, weil Du alle Daten hast und eigentlich nur für Visualisierung eigene Datenpunkte brauchst.
Danke Paul (und Micky),
es geht voran ;-)"Datenpunkte", musste erst Googeln, was und wie,...;
aber diese habe ich angelegt (0_userdata/=/Kontakt_01_Batterie sowie: Kontakt_01_Status.
(würde diese aber später dann in einen Unterordner "Kontakte" anlegen damit es übersichtlicher bleibt)Jetzt erscheint zumindest beim öffnen/schliessen des Kontakts eine Fehlermeldung (es wird also das richtige Objekt versucht zu verarbeiten ;-) )
Was ist denn jetzt noch falsch, das Prinzip denke ich verstanden zu haben:
Bei jeder Änderung des Objekts wird der JSON String nach contact und battery "durchsucht" und die Werte in die Datenpunkte Kontakt_01_Status/Batterie reingeschrieben.
Wollte mit dem "Debug" noch etwas mehr Infos rausbekommen, aber unsicher, wie und wo sich das Auswirkt oder wo man diese Info "test" sehen kann.

-
Danke Paul (und Micky),
es geht voran ;-)"Datenpunkte", musste erst Googeln, was und wie,...;
aber diese habe ich angelegt (0_userdata/=/Kontakt_01_Batterie sowie: Kontakt_01_Status.
(würde diese aber später dann in einen Unterordner "Kontakte" anlegen damit es übersichtlicher bleibt)Jetzt erscheint zumindest beim öffnen/schliessen des Kontakts eine Fehlermeldung (es wird also das richtige Objekt versucht zu verarbeiten ;-) )
Was ist denn jetzt noch falsch, das Prinzip denke ich verstanden zu haben:
Bei jeder Änderung des Objekts wird der JSON String nach contact und battery "durchsucht" und die Werte in die Datenpunkte Kontakt_01_Status/Batterie reingeschrieben.
Wollte mit dem "Debug" noch etwas mehr Infos rausbekommen, aber unsicher, wie und wo sich das Auswirkt oder wo man diese Info "test" sehen kann.

@topsurfer
Du hast vermutlich eine eigene Variable Wert erstellt? Die Variable findet man unter "Trigger" wie bereits oben gezeigt.Zeige bitte die Objektstruktur der beiden Datenpunkte unter "0_userdata.0". Etwa so:

-
@topsurfer
Du hast vermutlich eine eigene Variable Wert erstellt? Die Variable findet man unter "Trigger" wie bereits oben gezeigt.Zeige bitte die Objektstruktur der beiden Datenpunkte unter "0_userdata.0". Etwa so:

OK, "Trigger" hatte ich noch nicht,
habe jetzt Trigger => Object_ID => und dort "state value" genommen und mein "Wert" (das war standardmäßig dort) damit ersetzt.Die Fehler sind zwar weg, "test" vom debug seh ich auch, aber die Werte sind wohl nicht auf die Variablen geschrieben, oder?

Hier die Datenpunkte (noch nicht im Ordner Kontakte, will diese Fehlerquelle ausschliessen)

Und/BTW: Wo kann ich Blockly auf Deutsch umstellen, ioBroker ist ja eigentlich deutsch bei mir ...
-
OK, "Trigger" hatte ich noch nicht,
habe jetzt Trigger => Object_ID => und dort "state value" genommen und mein "Wert" (das war standardmäßig dort) damit ersetzt.Die Fehler sind zwar weg, "test" vom debug seh ich auch, aber die Werte sind wohl nicht auf die Variablen geschrieben, oder?

Hier die Datenpunkte (noch nicht im Ordner Kontakte, will diese Fehlerquelle ausschliessen)

Und/BTW: Wo kann ich Blockly auf Deutsch umstellen, ioBroker ist ja eigentlich deutsch bei mir ...
@topsurfer sagte: aber die Werte sind wohl nicht auf die Variablen geschrieben, oder?
Doch: Batterie: 100, Status: false.
-
@topsurfer sagte: aber die Werte sind wohl nicht auf die Variablen geschrieben, oder?
Doch: Batterie: 100, Status: false.
OK, stimmt, die Werte stehen da auch drin ;-)
Hatte was "kompkates" erwartet wie:
Kontakt_01_Status=true

Was ist der Wert der Variablen nun? "True" oder "val:true; ack:true;c:script...." ?
Und gerade geschaut, in Lovelace => Karte hinzufügen, kann ich ja "Entitäten" hinzufügen (Temperaturwert der Netatmo-Aussenstation z.B.), aber wie kann ich den so ermittelten Wert vom Kontakt-Status ("Offen" oder "Geschlossen") (der ja in einer Variablen steht als true/false) hier anzeigen / ausgeben lassen?
-
OK, stimmt, die Werte stehen da auch drin ;-)
Hatte was "kompkates" erwartet wie:
Kontakt_01_Status=true

Was ist der Wert der Variablen nun? "True" oder "val:true; ack:true;c:script...." ?
Und gerade geschaut, in Lovelace => Karte hinzufügen, kann ich ja "Entitäten" hinzufügen (Temperaturwert der Netatmo-Aussenstation z.B.), aber wie kann ich den so ermittelten Wert vom Kontakt-Status ("Offen" oder "Geschlossen") (der ja in einer Variablen steht als true/false) hier anzeigen / ausgeben lassen?
@topsurfer sagte: Was ist der Wert der Variablen nun? "True" oder "val:true; ack:true;c:script...." ?
"val:true" ist der Wert.
@topsurfer sagte in Newbie Einzelnen Wert von Contact-Entity anzeigen:
Lovelace
Kenne ich nicht.
-
@topsurfer sagte: Was ist der Wert der Variablen nun? "True" oder "val:true; ack:true;c:script...." ?
"val:true" ist der Wert.
@topsurfer sagte in Newbie Einzelnen Wert von Contact-Entity anzeigen:
Lovelace
Kenne ich nicht.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

