@Codierknecht @paul53 Elegante Lösungen, vielen Dank für eure Unterstützung!!
NEWS
Latest posts made by kfL
-
RE: Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
-
RE: Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
@paul53 said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:
@kfl sagte: was ist der Unterschied zwischen "Um" und "Nach"?
Die Version des JS-Adapters.
@kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:
"Wert von Objekt ID", muss hier nicht noch ein Operator hin, der schaut ob die ID's von den Fenster auch mit gefahren werden sollen oder nicht?
Nein, das ist bei booleschen Werten nicht erforderlich, denn "falls" prüft auf true für "mache".
@kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:
Was macht denn die Zeile setze fenster inder Liste (...)?
Vorher wird die ID in eine Liste aufgespalten, wobei der Punkt das trennende Element im Text ist. Aus dieser Liste wird nur das letzte Element (z.B. "Wohnzimmer_Links") genommen, um damit die Datenpunkt-ID der Jalousie zu bilden.
Super, vielen vielen Dank für die nützlichen Infos
Das Ganze funktioniert auch soweit, allerdings habe ich noch 2 Warnungen im Log, wie eine Frage, wieso zwischen drin immer noch die Meldung kommt:
"14:42:49.841 info javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Hoch"14:42:49.840 info javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Esszimmer 14:42:49.840 warn javascript.0 (148075) at Jalousien (script.js.common.Jalousie_Steuerung:11:7) 14:42:49.840 warn javascript.0 (148075) at Object.<anonymous> (script.js.common.Jalousie_Steuerung:21:9) 14:42:49.841 info javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Hoch 14:42:49.841 warn javascript.0 (148075) at Jalousien (script.js.common.Jalousie_Steuerung:11:7) 14:42:49.841 warn javascript.0 (148075) at Object.<anonymous> (script.js.common.Jalousie_Steuerung:21:9) 14:42:49.841 info javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Küche
var pos, id, fenster; // Beschreibe diese Funktion … async function Jalousien(pos) { var id_list = Array.prototype.slice.apply($("0_userdata.0.Jalousie_EG.*")); for (var id_index in id_list) { id = id_list[id_index]; if (getState(id).val) { id = id.split('.'); fenster = id.slice(-1)[0]; setStateDelayed(('alias.0.Jalousie_EG.' + String(fenster)), pos, false, parseInt(((0) || "").toString(), 10), false); console.log(('alias.0.Jalousie_EG.' + String(fenster))); } } } on({id: "0_userdata.0.Jalousie_EG.Hoch"/*Hoch*/, val: true}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; await Jalousien(0); }); on({id: "0_userdata.0.Jalousie_EG.Runter"/*Runter*/, val: true}, async function (obj) { let value = obj.state.val; let oldValue = obj.oldState.val; await Jalousien(100); });
-
RE: Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
@codierknecht said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:
@paul53
Nimm mal @paul53's Vorschlag.
Was er zeigt, funktioniert eigentlich immer einwandfreiDann beschäftige ich mich mit @paul53 's Vorschlag, Danke für deine Bemühungen
@paul53 said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:
@kfl sagte: Auswahl zusammen hoch oder runter fahren soll bei der Ansteuerung.
Links ist die Auswahl und rechts oben sind zwei Button zur Ansteuerung "hoch" oder "runter"?
Dann kann man zu den Jalousien Alias DP erstellen mit der ID-Struktur von z.B. "alias.0.Jalousien.Wohnzimmer_Links". Eine identische Struktur kann man für die Auswahl unter "0_userdata.0.Jalousien" erstellen.
Das Blockly könnte dann so aussehen:Da hätte ich ja direkt drauf kommen können
Wie bekommt man denn eine Funktion "Um"? Bzw was ist der Unterschied zwischen "Um" und "Nach"?
Bei der Bedienung "Wert von Objekt ID", muss hier nicht noch ein Operator hin, der schaut ob die ID's von den Fenster auch mit gefahren werden sollen oder nicht?
Was macht denn die Zeile setze fenster inder Liste (...)?Sorry wegen den ganzen Fragen, aber ich möchte das auch gerne verstehen, dann ist es einfach umzusetzen
-
RE: Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
@codierknecht dann bleib ich wohl lieber erst mal bei meinem praktmatischen Beispiel
Muss erst einmal reinkommen, bevor ich mich mit komplexeren Themen u.a. Selektoren beschäftige.Danke für den Tipp mit dem Objekt lesen und für das Topic!
-
RE: Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
@codierknecht Danke für dein Rückmeldung, wenn ich das ganze über Gruppe gestalten würde, müsste ich ja für jede Situation eine eigene Gruppe erstellen bspw:
Bad und Küche -> Gruppe
Schlafzimmer, Bad, Kinderzimmer Küche -> Gruppe
Schlafzimmer, Bad, Essen, Kinderzimmer, Küche -> Gruppeoder gibt es die Möglichkeit durch einen Baustein die Gruppe jeweils immer mit der entsprechenden Auswahl zu bestücken?
Ansonsten müsste ich halt für jeden Rolladen ein kleines Script erstellen:
-
Datenpunkte zusammenfassen - Jalousiesteuerung über VIS
Moin zusammen,
ich bin gerade dabei, in meiner VIS eine Rolladensteuerung zubauen. Hier soll es so sein, dass per Auswahl in der VIS die Rolläden entsprechend gruppiert werden, und die entsprechende Auswahl zusammen hoch oder runter fahren soll bei der Ansteuerung.
Ich habe dazu mich mal an einem Blockly mit Binding zu einem "Zentralen" DP versucht, leider spuckt der mir aber nichts aus. Vielleicht kann mir jemand einen kleinen aber wegweisenden Ansatz geben, wie ich korrekt an die Sache dran gehen kann.
Anbei mein Versuch das ganze erst mal mit einem "DP" zu realisieren.
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="5.G=(7r?7gJ,fF*L2U2m" x="-437" y="188"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="S-E*W@!k^Y=(?X^`D_E9"> <field name="oid">javascript.0.Jalousien.Badezimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="/~0=y`t@)HD)?y=M-8X#"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="`zgY?,S9R!a,|uSi78Z/"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="AmaWfew5}rX_5#dY#v2("> <field name="ATTR">val</field> <field name="OID">javascript.0.Jalousien.Badezimmer</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Q[^T7XY=5]C3;kwN{z8f"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="direct" id="W%n7Dso@_X`TZ:PXy9Uc" inline="false"> <field name="ONLY_CHANGES">TRUE</field> <value name="OID_SRC"> <shadow type="field_oid" id="c]@f`AqPoBSof!ZK7`79"> <field name="oid">javascript.0.Jalousien.TESTDP1</field> </shadow> </value> <value name="OID_DST"> <shadow type="field_oid" id="B+Ezc*`I+@9mqF:OHZ/m"> <field name="oid">javascript.0.Jalousien.Zusammenfassung</field> </shadow> </value> <next> <block type="debug" id="*r6R$@rzPdN9VXtG*d57"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="@BK!5@AlGT)%06i]1[o5"> <field name="TEXT">Bad +</field> </shadow> </value> <next> <block type="comment" id="$idpF+Hit%tZ:EP5f+a@"> <field name="COMMENT">Bad in Zusammenfassung</field> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="-yg-j`S-g@]`RX7%Kt(7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="sd3g#}yndW%h-B@^It7y"> <field name="TEXT">Bad -</field> </shadow> </value> <next> <block type="comment" id="dYJeL1SU4j0zczUQ}E]r"> <field name="COMMENT">Bad nicht mehr in Zusammenfassung</field> </block> </next> </block> </statement> <next> <block type="control" id=";U,a3XTX]G,uy_KPWb;6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Jalousien.Zusammenfassung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="HvfD36R[A~hCR:D@)7tV"> <field name="TEXT">100</field> </block> </value> <next> <block type="debug" id="SC:rLtES8F#z~5Lrwh;S"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="get_value" id="KBtj%AgkcHe1tge:Te9%"> <field name="ATTR">val</field> <field name="OID">javascript.0.Jalousien.TESTDP1</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="o56cJz2lRKq-@YEp1zi1" x="-437" y="838"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="SA$narOywv7?-|Q5fq--"> <field name="oid">javascript.0.Jalousien.Küche</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="}aS(WrKZx[iqT$Qv`b./"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="l|TYO]CYZ.pSeCmrbl9$"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="E[Fn]=ygbs]i.uoB)16C"> <field name="ATTR">val</field> <field name="OID">javascript.0.Jalousien.Küche</field> </block> </value> <value name="B"> <block type="logic_boolean" id="7riGx1~|$]YC`HqhK{h+"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="direct" id="`ndZ{/C64o|LXvJgu:fQ" inline="false"> <field name="ONLY_CHANGES">TRUE</field> <value name="OID_SRC"> <shadow type="field_oid" id="6P(nMB:Z`E3cQZTyTnuP"> <field name="oid">javascript.0.Jalousien.Zusammenfassung</field> </shadow> </value> <value name="OID_DST"> <shadow type="field_oid" id="P}#gd9tqW-3cKC!(ZW%b"> <field name="oid">javascript.0.Jalousien.TESTDP2</field> </shadow> </value> <next> <block type="debug" id="Wn$YGbT@4fcnSZ^VOICJ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="G+qh$Y~u!?O-*+DJGYnr"> <field name="TEXT">Küch +</field> </shadow> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="OxeeJ/Soeb+zJhtO]U|h"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="lNi~5}~%Z55M)Rz}bb]t"> <field name="TEXT">Küche -</field> </shadow> </value> </block> </statement> <next> <block type="control" id="utsZTOdV!g(Hcgj]RYFF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Jalousien.Zusammenfassung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="1H?ADj[Avr(3V{,)2Yc#"> <field name="TEXT">100</field> </block> </value> <next> <block type="debug" id="9P`e@0~$#21fWLByQv^+"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="A?Cxj$iADy.g}#InUW5V"> <field name="TEXT">test</field> </shadow> <block type="get_value" id=")_i~X:ulDbZ8fiW:[w{c"> <field name="ATTR">val</field> <field name="OID">javascript.0.Jalousien.TESTDP1</field> </block> </value> <next> <block type="debug" id="6$+{zL9%aO%FR(muojqQ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="get_value" id=":n##p;?p,PiS?6S#46%b"> <field name="ATTR">val</field> <field name="OID">javascript.0.Jalousien.TESTDP2</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
Vielen Dank schon mal
-
RE: Meldung zu bestimmter Zeit
@crunchip said in Meldung zu bestimmter Zeit:
@kfl machs doch einfach so
@djmarc75 said in Meldung zu bestimmter Zeit:
@kfl Verwende einen CronTrigger:
ich hab den CronTrigger eingesetzt, aber komischerweise bekomme ich hier nichts raus selbst, wenn ich eine Uhrzeit einstelle, und eine Nachrichten in den Log schreibe.
Die Uhrzeit im ioBroker stimmt, das habe ich kontrolliert.
@homoran said in Meldung zu bestimmter Zeit:
@kfl sagte in Meldung zu bestimmter Zeit:
ich habe bislang 2 Ansätze die beide nicht so wollen
wie denn?
Wenn du dir mal genau erzählst was wann wie passieren soll (und was nicht) hilft das ungemein eine strukturierte Logik aufzubauen.
Es soll hier in dem Fall bspw. um 15.00 eine Meldung erfolgen welche Tonne am nächsten Tag abgeholt wird. Der Adapter ist hier in dem Fall Trashschedule.
-
Meldung zu bestimmter Zeit
Moin zusammen,
ich bin die ganze Zeit schon am rätsteln, wie ich es schaffe eine Meldung zu einer bestimmten Uhrzeit zu erzeugen, ich habe bislang 2 Ansätze die beide nicht so wollen. Bis zur Bedingung der Zeit, funktioniert das ganze wie es soll..Script 1: funktioniert nicht, da die Änderung bereits Nachts statt findet und die Bedienung erst danach erfüllt ist
Script 2: in der Theorie würde es ja funktionieren, nur habe ich das ganze anscheinend falsch aufgebaut?
Wäre cool, wenn sich der ein oder andere das ganze mal anschauen könnte, und mir einen Tipp für den richtigen Weg gibt.
Danke