NEWS
Namen von Gerät aus Aufzählung ( TS011F reaktivieren)
-
@smo sagte: die immer an sein müssen in eine Aufzählung/Funktion gepackt, ein kleines Blockly Script gebaut, und wenn eine ausgeht, dann wird die einfach wieder angeschalten und alles ist fein. Jetzt hätte ich aber gern eine Nachricht, welche ausgegangen ist.
-
@paul53 Woohoo, danke, das isses.
Auf Kanalname wär ich nicht gekommen. Ich hab mir auch echt einen nach ner brauchbaren Doku abgesucht. Die bei ioBroker himself ist ja praktisch nicht vorhanden, und sonst findet man entweder Yt Videos oder Webseiten mit Anwendungsbeispielen. Das hilft zwar manchmal, aber ist sehr mühsam im Gegensatz zu einer generellen Doku. Auf jeden Fall, Danke nochmal.
So siehts jetzt aus, vielleicht hilfts ja jemandem:
<block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="Q1#G;~:}p(UJ/gq8r{8Q" x="-312" y="-888"> <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=".kyv{;C$dtA5GIXAB#]b"> <field name="oid">default</field> </shadow> <block type="selector" id="4H@3m/k2vpR+7%C|7r_V"> <field name="TEXT">state[id=*state](functions=watchdog_steckdosen)</field> </block> </value> <statement name="STATEMENT"> <block type="controls_forEach" id="kGqg)X?8}Nd$$-3_xvVe"> <field name="VAR" id="+Lmt#fAQ$C=8^Qurn01e">Steckdose</field> <value name="LIST"> <block type="selector" id="9u+)PLNYH-x!fC+fU`4|"> <field name="TEXT">state[id=*state](functions=watchdog_steckdosen)</field> </block> </value> <statement name="DO"> <block type="controls_if" id="B8[50Kr!#PUNs=`E5BI6"> <value name="IF0"> <block type="logic_compare" id="3lrVz1{:$4H[g!q/}28w"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="5D),BYBO+o(wI9aW?:fE"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="5upO?UDyF=Qp/hl5+D=9"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="15k|GNddwd8469DNE`xL"> <field name="VAR" id="+Lmt#fAQ$C=8^Qurn01e">Steckdose</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="pR+qQTlJ^L-.W.Are|HL"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control_ex" id="T]h^q86qI@xg[;/yxE?~"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="aNyb+*QuvA8yd6Y092tM"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="KhR*Y;.%jw(CKHDATXjY"> <field name="VAR" id="+Lmt#fAQ$C=8^Qurn01e">Steckdose</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="hij0JX[PO^9J0e@!`io1"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="ENY)PA!MR0b]/^$L(DfO"> <field name="NUM">0</field> </shadow> </value> <next> <block type="timeouts_wait" id="1V,m5_6Osa=CN-|)k2,s"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="pushover" id="242$[O5b%++=+C,fEv3S"> <field name="INSTANCE"></field> <field name="SOUND"></field> <field name="PRIORITY">0</field> <field name="LOG"></field> <value name="MESSAGE"> <shadow type="text" id="MrVk(6~L03rvB5ny[b!-"> <field name="TEXT">text</field> </shadow> <block type="logic_ternary" id="2X+`UMP%;#Y[rw6;m*l-"> <value name="IF"> <block type="logic_compare" id="Fj9+-ib{{zw?=ZH%UPh0"> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="g=ti3ch_^/v+rT,(v+;N"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="^Y~^gk3jM3{ew}KEtE?:"> <field name="VAR" id="+Lmt#fAQ$C=8^Qurn01e">Steckdose</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="aZdtbZJfrJY*/cvW1q=8"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="THEN"> <block type="text_join" id=",pVU0xKAAf(l_,OdaxQN"> <mutation items="2"></mutation> <value name="ADD0"> <block type="on_source" id="*woZx@EF%~i3B1;r:F.I"> <field name="ATTR">channelName</field> </block> </value> <value name="ADD1"> <block type="text" id="7+K1kJ,krPp)v|$Uk-H:"> <field name="TEXT"> ist abgeschalten</field> </block> </value> </block> </value> <value name="ELSE"> <block type="text_join" id="N[e[H~;eF?0|dL+Yhjtg"> <mutation items="2"></mutation> <value name="ADD0"> <block type="on_source" id="OD,na415Y{XS=nc~v+g-"> <field name="ATTR">channelName</field> </block> </value> <value name="ADD1"> <block type="text" id="gVE-)nbt8}dn*]8YS],8"> <field name="TEXT"> wurde reaktiviert.</field> </block> </value> </block> </value> </block> </value> <value name="TITLE"> <block type="text" id="el0)Gsa1CU{FFE-*N_?5"> <field name="TEXT">Watchdog Steckdosen Keller</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block>
-
@smo sagte in Namen von Gerät aus Aufzählung:
@homoran Jetzt kloppt euch mal nich, sondern gebt mir lieber nen Tritt in die richtige Richtung
das war der (indirekte) Tritt. Ich kann srlber kein js und hatte gehofft, dass @bahnuhr dann den Hinweis auf den Namen des Kanals (nicht Device, sorry
) aufgenommen hätte.
was die Doku sngeht hat iobroker eigentlich gute Ansätze und die js-doku ist sogar sehr ausführlich.
Leider müsste ich auch hier @paul53 um den Hinweis zum Pfad für die JS Doku bitten -
@homoran Na, nun ists ja gelöst
-
@homoran sagte: Hinweis zum Pfad für die JS Doku bitten
-
@smo sagte: So siehts jetzt aus
"Kanalname" bezieht sich auf den Trigger-Datenpunkt und wird in der Schleife nicht verändert. In der Schleife muss eine Javascript-Funktion parentName(id) verwendet werden.
Es muss doch nur die Steckdose eingeschaltet werden, die gerade ausgeschaltet hat - wie in meinem Vorschlag oben.
-
-
@smo sagte: Es schaltet nur die abgeschaltete Dose, die anderen beiden nicht
Dafür ist die Schleife nicht erforderlich.
-
@paul53 Bitte nich lachen. aber ich verstehs immer noch nicht. Dass man die Prüfung einkürzen kann, da hätte ich ein Auge drauf haben müssen, aber wofür man noch die Funktion braucht, das versteh ich nicht. Der gibt den richtigen Namen aus.
-
@smo sagte: wofür man noch die Funktion braucht, das versteh ich nicht.
Die Funktion benötigt man nur für die Schleife, in der alle Datenpunkte des Selektors abgefragt werden. Zu jedem Datenpunkt in der Schleife gehört ein anderes Gerät, dessen Namen man mit der Funktion ermitteln kann. "Kanalname" liefert nur den Gerätenamen des Trigger-Datenpunktes - nicht den der anderen Datenpunkte in der Schleife.
Wie gesagt: Die Schleife ist unnötig und somit auch die Funktion.