NEWS
jarvis v3.0.0 - just another remarkable vis
-
@marsmännchen Zeig mal bitte die DPs aus dem Buero für Rollladen.
-
@mcu
Ok.
Also das sind Alias mit val/2.55 und val*2.55 weil die WagoPFC200 0-255 braucht.
Die Aktuelle Position von der Wago ist so:{ "type": "state", "common": { "name": "BueroActualPos", "role": "level.blind", "type": "number", "unit": "%", "min": 0, "max": 100, "read": true, "write": false, "alias": { "id": "modbus.0.inputRegisters.5_byOGRollBueroActualPos", "read": "val/2.55" } }, "_id": "alias.0.Rolladen.Buero.BueroActualPos", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1667419968860, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Und der Setpoint ist so:
{ "type": "state", "common": { "name": "BueroSetPos", "role": "level.blind", "type": "number", "read": true, "write": true, "alias": { "id": "modbus.0.holdingRegisters.32005_byOGRollBueroSetPos", "read": "val/2.55", "write": "val*2.55" }, "unit": "%", "min": 0, "max": 100 }, "_id": "alias.0.Rolladen.Buero.BueroSetPos", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1667419894282, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@marsmännchen
Wie lange dauert es bis die ActualPos aktualisiert wird und stehen bleibt, wenn man mit setPos einen Wert vorgibt?
Also,wenn man bei setPos 40 einträgt.
Kannst du ein GIF erstellen, damit man es sehen kann. (screenToGif)
Mit welchem DP setzt ein STOP? -
@mcu
Ich installiere jetzt mal screen to Gif.
Stop DP brauche ich eigentlich nicht. Wenn ich z.B. Rauf Taste drücke dann fährt er bis Setpoint 100 und stoppt dann, oder bei runter ist Setpoint 0. -
@marsmännchen Und dann ist der ActualPos dann auch 0 (unten) und 100 (oben)?
Wie ist dann der ActualPos, wenn du von Deinem anderen Gerät die Position veränderst? -
@mcu
Ja ist dementsprechend 0 oder 100.
Durch Änderung von anderen Geräten (Taster neben Rolladen oder orig.Visu) ist die ActualPos immer die aktuelle Position weil die PFC200 mitzählt wie lange das Relais TRUE ist.
Es wird wohl eher ein Denkfehler in meinem Blockly sein.
Wenn SetPos geändert dann...
Aber wenn ich in Jarvis zuletzt runter (setpoint 0) gefahren bin und mit der Hand rauf dann bleibt der Setpoint ja für das nächste mal runter fahren per Jarvis ja immer noch 0.
Somit löst der Trigger nicht aus, weil Setpoint ja nicht geändert, weil immer noch 0.
-
@marsmännchen Dann musst du auf ActualPos triggern und dann bei unterschiedlichen Werten, nach einer bestimmten Zeit den setPos gleich setzen.
Bei einer Fahrt wird ja jede Sekunde ein Wert in ActualPos geschrieben. Also muss man abfragen, wann sich der Wert von ActualPos 2 Sekunden nicht geändert hat und dann prüfen, ob setPost ungleich ActualPos ist und dann setzen. -
@mcu
Ja ich glaube ich verstehe was du meinst.
Gäbe es noch eine Möglichkeit vom Jarvis Widget zu triggern? So quasi, " wenn einer der Taster aktualisiert"?
Habe für Jarvis Widgets keine Datenpunkte gefunden. Die wird man irgendwie erstellen müssen. -
@marsmännchen Wäre in Deinem Fall nicht sinnvoll. Könnte man, dann müsste man aber dafür zusätzliche DPs erstellen.
Aber für Deinen Fall reicht ein Blockly mit dem ActualPos Trigger. -
@mcu
Nein, geht auch nicht. Da fährt er wirr rauf und runter. Muss ich tagsüber wenn ich daheim bin nochmal nachforschen.
Hängt vermutlich mit dem dazugehörigen Blockly zusammen welches den Trigger an die PFC200 sendet welcher gesetzt werden muss wenn die SetPos geändert wird. (damit die PFC200 weiß das die Position angefahren werden soll)<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="SxeTbGiamD5QSeh4hkj." x="163" y="2113"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="pM0+HfZSW,ukViW%v}X0"> <field name="oid">modbus.0.holdingRegisters.32005_byOGRollBueroSetPos</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="c)V1#2*.%|bIo-mH,0ya"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="49S:4v[apL|bM01!4kSJ"> <field name="TEXT">setpos geändert</field> </shadow> </value> <next> <block type="timeouts_cleartimeout" id="MA]|cG0gGVKs!6tWL;_a"> <field name="NAME">timeout</field> <next> <block type="debug" id="#wo@s:V#nAc`@ggs%,tG"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="]?F]]exBuuQDFiO@oW76"> <field name="TEXT">trigpos true</field> </shadow> </value> <next> <block type="control" id="Eus5B@VM#1yxEhVGlE5%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">modbus.0.coils.32768_xOGRollBueroTrigPos</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="#fP/J.Cv}bN`3uA5911|"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="N*iT!/Yp`b:.XY/r1He#"> <field name="NAME">timeout14</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="debug" id="[J=#j)(R|Kr1GM_sk7Uo"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="uM{$k=ukrK^@VozLXY+,"> <field name="TEXT">trigpos false</field> </shadow> </value> <next> <block type="control" id="QT{*|bD|F?TGs__b1:e*"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">modbus.0.coils.32768_xOGRollBueroTrigPos</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="+(MTi=|/9/`EOAT!4wno"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block>
-
@marsmännchen Wie sieht denn mein Blockly bei Dir aus? Bitte als Bild.
-
@mcu
Nicht sag ich kann nicht mal abschreiben... -
@marsmännchen timeout13 setzen stop
-
@mcu
wirklich wahr..kotz -
wow, das sieht gut aus!!
Ich glaube du hast das Problem gelöst!!
Danke sehr! -
@matze007 said in jarvis v3.0.0 - just another remarkable vis:
Und zwar habe ich einen Datenpunkt, in dem ich einen Stromverbrauchswert in kWh fortschreibe. Diesen möchte ich auf Tagesbasis als BarChart darstellen. Da sich der Tag mehrmals am Tag aktualisiert/hochzählt, erhalte ich bei jeder Aktualisierung eine eigene Säule im Diagramm. Die Tageswerte sollen aber in einem Bar dargestellt werden. Wie schaffe ich das?
Hat zufällig jemand eine Idee, wie ich das Thema lösen kann? Bin nochmal eine ganze Weile dran gesessen, auch mit der Doku von eCharts, aber ich komme einfach nicht weiter...
Dankeschön :-)!
-
@matze007 Zeig es mal mit Bildern. Was wann passiert in der entsprechenden Reihenfolge, wie es passiert. Danke.
-
Aber gerne
Hier mal das einfachste Beispiel #1: Ich schreibe jede Nacht um 23.59 Uhr den Stromverbrauch des jeweiligen Tages in einen Datenpunkt. Nun hätte ich gerne ein Chart, bei dem sich pro Tag eine Säule bildet. Stattdessen erhalte ich einen Chart, bei dem sich der Datenpunkt nach der Uhrzeit bildet und er pro Tag weitere Werte darstellen möchte (aber keine erhält, da ich ja nur um 23.59 Werte schreibe).
Im History-Adapter sieht das dann wie folgt aus:
IST-Darstellung im Chart:
SOLL-Darstellung im Chart:
Was muss ich einstellen, um diese Darstellung zu erhalten?
Im Beispiel #2 wird es vielleicht etwas komplexer. Gerne möchte ich die Daten nicht erst zum Tagesende in den Datenpunkt schreiben, sondern bei jeder Änderung. Die Säule (wieder eine pro Tag) soll sich dann über den Tag "aufbauen". Das wäre erst der nächste Step, aktuell habe ich dazu noch keine Screenshots. Vielleicht lässt sich der #1-Lösung aber auch #2 erschlagen...
Danke dir/euch!
-
@matze007 Geht erst mit v3.1.0.
Zwischenraum ist abhängig von der Breite vom Bar und Widgetbreite. -
Ah, sehr gut. Dann gedulde ich mich noch etwas und warte auf das Feature!
Zwei kleine Fragen dazu:
- Kannst du schon abschätzen, bis wann die v3.1.0. veröffentlicht wird?
- Lässt sich mit der 3.1.0 auch mein Beispiel #2 lösen?
@matze007 said in jarvis v3.0.0 - just another remarkable vis:
Im Beispiel #2 wird es vielleicht etwas komplexer. Gerne möchte ich die Daten nicht erst zum Tagesende in den Datenpunkt schreiben, sondern bei jeder Änderung. Die Säule (wieder eine pro Tag) soll sich dann über den Tag "aufbauen". Das wäre erst der nächste Step, aktuell habe ich dazu noch keine Screenshots. Vielleicht lässt sich der #1-Lösung aber auch #2 erschlagen...
Merci!!