NEWS
Wert von Datenpunk in Pfad
-
Moin,
Ich bastele aktuell an einem kleinem Projekt und will grade eine Vis erstellen.
Ich habe einige Scripte Blockly und JS, durch probieren erstellt, und sie scheinen sogar zu funktionieren.
Da ich mehrere Shelly PM mit Tempsensor und 2,5er Shellys nutzen möchte, habe ich versucht dieses die SN zu realisieren und diese dafür in Datenpunkte unter 0_userdata angelegt.In meinem Vis bekomme ich es aner irgendwie nicht hin mit diesen datenpunkten zu arbeiten.
Ich stelle mir das so vorshelly.0.SHSW-PM#{0_userdata.0.venti1.Variabele.Temperatur}#1.ext.temperatureC1
Nun wird mit in Vis: shelly.0.SHSW-PM#XXXXXXXXXXX#1.ext.temperatureC1 mit der richtigen SN angezeigt.
Ich möchte allerdings dort den Wert von temperatureC1 angezeigt bekommen.
Wenn ich den gesamten Pfad in {} setzte führt das leider nicht zum Ziel.Kann mir jemand unter die Arme greifen und mir einen Tip geben, oder mir einen Link schicken wo ich dazu was finde?
Vielen Dank im Vorraus
Gruß Wobbix -
@wobbix Du kannst einfach ein
- .val = Wert des Datenpunktes
- .lc = "last change", Unix-Timestamp wann sich der Wert das letzte mal geändert hat
- .ts = "Timestamp", Unix-Timestamp wann der Wert das letzte mal aktualisiert wurde
an den gewünschten Datenpunkt anhängen
-
Moin @SBorg .
Deine lösung ist für JS gedacht oder?
Den obigen Code möchte ich ja in der Vis oberfläche einsetzen.
Ich möchte eigendlich nur die Temperatur von dem Shelly PM die Externe Temperatur in Vis Anzeigen lassen.
Das geht natürlich direkt über die Objektwerte im von Shelly.
Da ich aber
zunachst 5 Temperatur sensoren und 20 Aktoren bedienen möche, habe ich die SN ser einzenden Shellys unter 0_Userdata benannt und als wert nur die Extrahierte SN eingetragen. Diese füge ich in das JS Sript so ein und funktioniert auch soweit.
Nur im vis bekomme ich das mit der oben genannten methode nicht hin.
Wenn ich den Code oben in z.B. ein beschriftungsfeld eingebe bekomme ich den richtien Pfad mit der SN angezeigt. Nicht jedoch den Wert des Datenpunkts. Auch mit .val leider nicht.Mein Datenpunkt ist also richtig in den text integriert, jedoch lässt sich der Text scheinbar nicht mehr als eigenständiger Datenpunkt zu funktionieren.
Der Sinn soll eigendlich sein, das ich bei einem defekt, nur die SN im 0_userdata ändern muss und die Scripte und Anzeigen in der vis brauche ich nicht extra anpassen.
-
@wobbix Hi, dass würde auch bei einem Binding in der VIS funktionieren, aber damit kannst du keine Variable innerhalb einer Variablen "zusammenbauen".
@wobbix sagte in Wert von Datenpunk in Pfad:
Der Sinn soll eigendlich sein, das ich bei einem defekt, nur die SN im 0_userdata ändern muss und die Scripte und Anzeigen in der vis brauche ich nicht extra anpassen.
Das würde aber dann einfacher per "Alias" gehen, denn genau dafür gibt es die
Du legst einfach zB. ein Alias "Temperatur blabla --> Shelly xyz-Datenpunkt" an, dann kannst du von überall (auch VIS) einfach auf den Datenpunkt "Temperatur blabla" zugreifen.
Stirbt nun bspw. der Shelly, brauchst du nur einmalig beim Alias den neuen Datenpunkt ändern --> feddisch -
Leider gibt es keine dynamischen Datenpunkte in vis.
Datenpunkte und bindings werden beim start der view im Browser
intern eingesammelt, die Datenpunkte abonniert und bei Inhaltsänderung
wird dann das jeweilige widget aktualisiert.
Wenn sich die Bezeichnung des Datenpunktes aber mittendrin ändert,
dann stehen die Daten nicht zur Verfügung.Daher einen festen Datenpunkt definieren und den Inhalt den du anzeigen lassen möchtest, dann per javascript in diesen Datenpunkt schreiben
oder die Lösung mit alias, da bin ich aber nicht firm drin -
Hallo
Danke ersteinmal für eure Mühe
@OliverIO Danke für die Erklärung wie das bei der Vis funktioniert. Hat mich wieder etwas schauer gemacht.@SBorg Ok Das "zusammenbauen" in Vis geht nicht.
Mit Alias meinst du den Device.0 Adapter? Nicht das bind obljekt im JS/Blockly? Richtig?
Das hatte ich bisher nicht auf dem Schirm weil ich da nur mal mit Alexa probiert habe.Das werde ich mal ausprobieren. Ich geb hier noch ne Rückmeldung.
Danke erstmal.
Gruß René
-
@wobbix Nimm am einfachsten den Alias-Manager:
-
@SBorg Ich habe mein Projekt nun testweise mal auf Alias umgebaut und dein Adapter dafür genutzt.
Klappt soweit ganz gut.Vielen Dank für den Tip mit den Alias, ist zwar esrtmal ummgebaue, aber ich denke das bringt mich so zu meinem Ziel.
Gruß René