NEWS
jarvis v3.1.x - just another remarkable vis
-
-
japp,
Diagrammgröße mit px bzw. als Prozentangabe funktioniert es wieder -
Hallo,
ist es möglich die Werte mehrerer Datenpunkte aus ioBroker in einer DropdownAction zu hinterlegen und der Wert des ausgewählten Dropdowns in den Dp (Trigger) zu speichern? Ich habe 4 Datenpunkte (bool) und möchte in Jarvis anhand der Dropdown auswählen, welchen dieser DP ich nutzen möchte. Den "durchgeschleiften" Wert möchte ich dann weiter verwenden.
ioBroker v7.1.5
Jarvis v3.1.8 proMit freundlichen Grüßen
-
@chrischi-0 Kannst du mal ein Beispiel geben, hab es noch nicht verstanden.
DP1 false DP1 true DP2 false DP2 true DP3 false DP3 true DP4 false DP4 true
Was soll jetzt passieren?
Wenn man dies in der DropdownAction nutzt, wählt man einen Wert aus, steht im Trigger der Wert. -
Ich habe folgende 4 Datenpunkte:
Diese 4 Datenpunkte werden aus Node-RED gespeist und anhand des Preises in tibber ändern die Dp's auf true oder false.
Nun möchte ich in Jarvis diese 4 Dp Namen in einer Dropdown Liste anzeigen lassen, wenn in in der Dropdown 4 Stunden ausgewählt wird, möchte ich gerne den bool Wert von tibber_4std an einen weiteren Datenpunkt weiterleiten. Als Hintergrund: Ich möchte gerne abhängig vom Wetter, nachts die Heizung laufen lassen, da es anhand des Wetters zu unterschiedlichen Nachtlaufzeiten kommen kann, möchte ich dies gerne direkt per Dropdown auswählen können.
Mein Versuch, welcher leider nicht funktioniert, da werden nur die die hinterlegten Werte in der Anzeigevariante hinterlegt.
-
@chrischi-0 Es soll ja immer nur einer der DPs auf true stehen, oder?
Wird denn automatisch von einem Programm die anderen DPs auf false gesetzt, wenn einer auf true gesetzt werden würde?Also grundsätzlich kannst du einen dummy-DP nutzen und dann mit den Datenpunkt-Eigenschaften die anderen DPs setzen.
Hab ich hier mal beschrieben.
https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/geraet/datenpunkt-eigenschaft/mehrere-dps-mit-val-setzen-proHab das Bild gerade erst angeschaut, bist ja schon auf dem richtigen Weg.
-
Nein, es können auch alle 4 DP's auf true stehen, abhängig vom Preis im tibber. Wenn aktuell die günstigste Stunde wäre, dann sind alle 4 DP's true. Ich möchte die Werte von den 4 DP's nicht ändern, nur auslesen, wenn ein DP ausgewählt (per Dropdown) diesen Wert an den dummy-DP weitergeben.
-
@chrischi-0 Setzen geht direkt, aber lesen nicht, bzw. ich habe es nicht getestet. Ich denke, das müsste man mit scripts machen.
Dort kannst du die DPs auslesen und entsprechend andere DPs setzen.
Aber das kann man in javascript (ioBroker) auch. -
@mcu Ich hatte gehofft, ich kann den Schritt mit Scipts sparen. Wäre ja zu schön um wahr zu sein. Ich begeb mich dann mal an das Script zu schreiben.
Vielen Dank für deine Hilfe und macht weiter so
-
@chrischi-0 Ich hab es mal versucht mit v3.2.0, da funktioniert es so. Müsste aber auch mit v3.1.8 gehen.
Hier nur mit log Eintrag.{ "value": "val=> {if(val==1) {window.Socket.getState('0_userdata.0.jarvis.test.num6', ({ err, state }) => {console.log('1 '+state.val); });} else if(val==2) { window.Socket.getState('0_userdata.0.jarvis.test.num5', ({ err, state }) => {console.log('2 '+state.val); });}}" }
-
@mcu Oh, vielen Dank. Werde es heute Nachmittag ausprobieren. Sieht recht überschaubar aus, aber auf diesen Aufbau wäre ich nie gekommen. Werde mich melden, wenn es funktioniert. Alternativ habe ich ja noch das erstellte Script.
-
Hi zusammen,
ich versuche gerade mit Datenpunkt-Eigenschaften eine 1000 Wh in 1kWh anzeigen zu lassen und bin im Wiki auf folgendes gestoßen:
{"value": "val => parseInt(val*1000)"}
Muss ich diesen JSON code einfach in die Datenpunkt Eigenschaften reinkopieren und es sollte funktionieren? Wenn ja, dann geht es nicht.. Zumindest nicht in einem HistroyGraph. (Ich habe PRO)Christian
-
@chris0706 Wenn du 1000 in 1 umwandeln möchtest, musst du die Division nutzen.
{"value": "val => parseInt(val/1000)"} /* mit Kommazahl ? */ {"value": "val => parseFloat(val/1000).toFixed(2)"} /* für HistoryGraph */ {"value": "val => parseFloat(parseFloat(val/1000).toFixed(2))"}
Findet man hier:
https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/geraet/datenpunkt-eigenschaft/berechnungen-mit-val#divisionMuss ich diesen JSON code einfach in die Datenpunkt Eigenschaften reinkopieren und es sollte funktionieren?
ja
Für HistoryGraph musst du einen Haken gesetzt haben im HistoryGraph-Modul.
https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/besonderheiten-v3/module/historygraph#use-device-value-function -
> /* mit Kommazahl ? */ > {"value": "val => parseFloat(val/1000).toFixed(2)"}
Möchte nur ungern reingrätschen, aber das Runden mit Kommazahlen im HistoryGraph funktioniert nicht. Sobald ".toFixed(x)" eingetragen wird, verschwinden alle Werte im HistoryGraph des jeweiligen DP. Bei diesem Fall ist der Haken gesetzt, die Kurve wird auch erzeugt, aber die Datenpunkte im Graphen haben keine Werte hinterlegt.
Beispielbild:
Oberer Wert ist die Produktion, unterer die maximale Produktion.
Bild vom Widget:
(Bezug und Einspeisung verwenden die Value-Werte, da diese bereits korrekt vorliegen "für meinen Fall")
-
@chrischi-0 Dann dort nochmal ein parsefloat() drum oder Number().
{"value": "val => parseFloat(parseFloat(val/1000).toFixed(2))"}
Vermutlich mag der historyGraph keinen String, sondern nur number.
-
Die Formeln werden ja immer wilder, aber funktioniert. Wäre auch ein sehr guter Punkt im Wiki.
Ich begeb mich dann mal wieder an mein eigentliches Problem.
-
@chrischi-0 Hab es eingetragen.
-
@mcu said in jarvis v3.1.x - just another remarkable vis:
@chrischi-0 Ich hab es mal versucht mit v3.2.0, da funktioniert es so. Müsste aber auch mit v3.1.8 gehen.
Im Log kommt nichts an. Ich warte bis v3.2.0 als stable veröffentlicht wird und setzte mich dann nochmal dran. Bis dahin funktioniert es mit dem Script. Vielen Dank für die Hilfe.
-
@chrischi-0 Der Eintrag kommt im Browser-Log (F12) nicht im normalen ioBroker-LOG (Protokolle).
-
@mcu Ja, da taucht alles auf.