NEWS
Blockly Script soll nur tatsächlich geschaltete Geräte per Telegram senden
-
Hallo,
ich habe ein Blockly Script das einwandfrei funktioniert. Nun möchte ich das mir nicht eine "vorgefertigte" Nachricht geschickt wird, sondern eine "flexible" Antwort…
! ````
// Manuelle Auslösung alle Rollos runter
on({id: "javascript.0.Rollladen_komplett_zu"/Rollladen komplett zu/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Rollladen
setStateDelayed("hm-rpc.0.MEQ00000.1.LEVEL"/Beschattung_Esszimmer.LEVEL/, 0, 1000, false);
setStateDelayed("hm-rpc.0.MEQ00000.1.LEVEL"/Beschattung_ Wohnzimmer.LEVEL/, 0, 2000, false);
setStateDelayed("hm-rpc.0.MEQ00000.1.LEVEL"/Rollanden_Moritz.LEVEL/, 0, 3000, false);
setStateDelayed("hm-rpc.0.MEQ00000.1.LEVEL"/Rolladen_Nele.LEVEL/, 0, 4000, false);
// setzt Variable zurück
if (getState("javascript.0.Rollladen_komplett_zu").val == true) {
setStateDelayed("javascript.0.Rollladen_komplett_zu"/Rollladen komplett zu/, false, 6000, false);
}
// Ansage An/Aus
if (getState("javascript.0.Ansagen_ein_oder_ausschalten.Rollladen_komplett_Ansage").val == true) {
setState("sayit.0.tts.text", "de;" + 'Hallo, es werden nun alle Beschattungen geschlossen');
}
// Handyansage an/Aus
if (getState("javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy").val == true) {
sendTo("telegram", "send", {
text: 'Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet'
});
sendTo("pushover.0", "send", {
message: 'Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet',
sound: ""
});
}
});
! // Manuelle Auslösung alle Rollos auf
on({id: "javascript.0.Rollladen_komplett_auf"/Rollladen komplett auf/, val: true}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
// Rollladen
setStateDelayed("hm-rpc.0.MEQ0000.1.LEVEL"/Beschattung_Esszimmer.LEVEL/, 100, 1000, false);
setStateDelayed("hm-rpc.0.MEQ0000.1.LEVEL"/Beschattung_ Wohnzimmer.LEVEL/, 100, 2000, false);
setStateDelayed("hm-rpc.0.MEQ0000.1.LEVEL"/Rollanden_Moritz.LEVEL/, 100, 3000, false);
setStateDelayed("hm-rpc.0.MEQ0000.1.LEVEL"/Rolladen_Nele.LEVEL/, 100, 4000, false);
// setzt Variable zurück
if (getState("javascript.0.Rollladen_komplett_auf").val == true) {
setStateDelayed("javascript.0.Rollladen_komplett_auf"/Rollladen komplett auf/, false, 6000, false);
}
// Ansage An/Aus
if (getState("javascript.0.Ansagen_ein_oder_ausschalten.Rollladen_komplett_Ansage").val == true) {
setState("sayit.0.tts.text", "de;" + 'Hallo, es werden nun alle Beschattungen geöffnet');
}
// Nachricht an oder aus
if (getState("javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy").val == true) {
sendTo("telegram", "send", {
text: 'Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet'
});
sendTo("pushover.0", "send", {
message: 'Alle Rolläden sind gleichzeitig geöffnet worden, durch Programmauslösung am Tablet',
sound: ""
});
}
});
! //Ich möchte das mir in der Nachricht mitgeteilt wird welche Rollläden genau geschlossen worden sind. Also nicht mehr pauschal, sondern nur die tatsächlich gefahrennen Rollläden in meiner Nachricht erwähnt. Ist verständlich was ich erreichen möchte? Kann dafür jemand vielleicht ein Beispiel einstellen? Gerne auch anhand meines Blocklys oben. Gruß Sven
-
Hallo,
nutzt niemand von euch diese oben beschriebene Funktion, oder habe ich doof beschrieben was ich erreichen möchte?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Hallo
Stell doch mal einen Export hier rein.
Grüße
-
Hallo,
oh ich habe oben versehentlich ein Script verwandelt von Blockly in Javascript gepostet.
Hier nun das exportierte Blocky:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="AV(xik??:``G5_MN[tiv" x="-437" y="-337"><field name="COMMENT">Manuelle Auslösung alle Rollos runter</field>
<next><block type="on" id="{EKZRiaeJJ2dXbV|QC19"><field name="OID">javascript.0.Rollladen_komplett_zu</field>
<field name="CONDITION">true</field><statement name="STATEMENT"><block type="comment" id="[/co?!2njn#ajRV21u[J"><field name="COMMENT">Rollladen</field> <next><block type="control" id="x@;nm3.{*e=]?-jkcl^A"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="/-e3X=8?(9gowyOP?3O,"><field name="NUM">0</field></block></value> <next><block type="control" id="C@R.{!H?rkVxUv84rjN}"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="_2!y1;mo18=TuO0ein!W"><field name="NUM">0</field></block></value> <next><block type="control" id=".o^rimHhiwuSqXsYJGSi"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="%C#3}e6gg,^+5=F~Q:XX"><field name="NUM">0</field></block></value> <next><block type="control" id="){h{0WDyFJfhy5mR:q(_"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="Fz-V~!Px2_i%kAi7Xi-A"><field name="NUM">0</field></block></value> <next><block type="comment" id="D4WUmbKW,=o~J1b[653i"><field name="COMMENT">setzt Variable zurück</field> <next><block type="controls_if" id="G,IPh#w,}Gg}i7OcI~le"><value name="IF0"><block type="logic_compare" id="p3/CH+nV8iN#rX?5{9)o"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="^brTX).6ev7*m(]V7!/Z"><field name="ATTR">val</field> <field name="OID">javascript.0.Rollladen_komplett_zu</field></block></value> <value name="B"><block type="logic_boolean" id="RAB}{@2W!(w`1sP)E:Ok"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="P3uJ3`%/WXZ*||`5H%(1"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.Rollladen_komplett_zu</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">6000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="0LjH_nKNna(0:;E}rBBJ"><field name="BOOL">FALSE</field></block></value></block></statement> <next><block type="comment" id="ni5qZBMI1zFB*0@ZTyVT"><field name="COMMENT">Ansage An/Aus</field> <next><block type="controls_if" id="|Ytea7|KnMvA`v.(X*-{"><value name="IF0"><block type="logic_compare" id="d%l5VrH-6_.}A,L?{hYN"><field name="OP">EQ</field> <value name="A"><block type="get_value" id=":+#Q=8I*1=3LMXK@VUIu"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rollladen_komplett_Ansage</field></block></value> <value name="B"><block type="logic_boolean" id="A=Z5_G)1TKR=c!^avAz="><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="sayit" id="D`9n,W4A^I^WZlFllC?J"><field name="INSTANCE">.0</field> <field name="LANGUAGE">de</field> <value name="MESSAGE"><shadow type="text" id="2!hde](SRk0{yC]SNLQ7"><field name="TEXT">Hallo, es werden nun alle Beschattungen geschlossen</field></shadow></value></block></statement> <next><block type="comment" id="5!f4=oY#]kuo~@.US]Pg"><field name="COMMENT">Handyansage an/Aus</field> <next><block type="controls_if" id="[S=wMw7B!:JDHN(4=J9r"><value name="IF0"><block type="logic_compare" id="`YpFKu9HbEBKg|)uyWzz"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="e=+=%vEtpxD.l-+E|@zg"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy</field></block></value> <value name="B"><block type="logic_boolean" id="X6|(I02rlN4}y-zN.I}+"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="telegram" id="q{!slWSqED{%j(_Q9-z1"><value name="MESSAGE"><shadow type="text" id="daA`c,{h|:5I1WFcxeHi"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow></value> <next><block type="pushover" id="eGw2QegfDQy2X*usYt}0"><field name="INSTANCE">.0</field> <field name="PRIORITY">0</field> <value name="MESSAGE"><shadow type="text" id="e[(,ipWtZQ-;{l756%#+"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block>
<block type="comment" id="8]RlWre`{c+Ob+AI}/y_" x="512" y="-337"><field name="COMMENT">Manuelle Auslösung alle Rollos auf</field>
<next><block type="on" id="W.M-C|v[NC:A*3w65LLI"><field name="OID">javascript.0.Rollladen_komplett_auf</field>
<field name="CONDITION">true</field><statement name="STATEMENT"><block type="comment" id="bm4Td~stp.dS9!Daf`*1"><field name="COMMENT">Rollladen</field> <next><block type="control" id="6Q[C@G(9ZNUz+E.-zgYG"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="#HjfXpIFSXvHr:6[T}C)"><field name="NUM">100</field></block></value> <next><block type="control" id="{w=qzs3O*i~064t4pj,m"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="GpM_*!^cDFytrC#|9Xu,"><field name="NUM">100</field></block></value> <next><block type="control" id="QB:rkbtHp@A5{3+gg66y"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="@B:)fuXDq8~L*T1?y)}S"><field name="NUM">100</field></block></value> <next><block type="control" id="IP/ozr2_/@r.(D~5:MoG"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="math_number" id="Tq#E}[jjc|0g@bt-KJ/@"><field name="NUM">100</field></block></value> <next><block type="comment" id="kpuH63qhG#.VgeE;-{`m"><field name="COMMENT">setzt Variable zurück</field> <next><block type="controls_if" id="Cx!aoIpFL/_ofF|lUB9V"><value name="IF0"><block type="logic_compare" id="s|V!J!he:pHV-vtU]NVV"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="-SG{unVf8~x`l:96M;VN"><field name="ATTR">val</field> <field name="OID">javascript.0.Rollladen_komplett_auf</field></block></value> <value name="B"><block type="logic_boolean" id="[wV8[o28WbCZzV8DEsgy"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="Y+DSmOGG~Snb;/OWPPc}"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.Rollladen_komplett_auf</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">6000</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="RmC6nl+^)Ydi(b9gIM(5"><field name="BOOL">FALSE</field></block></value></block></statement> <next><block type="comment" id="6)Dnvit.C[BF^?va0}ni"><field name="COMMENT">Ansage An/Aus</field> <next><block type="controls_if" id="5mh7|~z[b1(XROV4ZZ|N"><value name="IF0"><block type="logic_compare" id="Z`Jw/s?wDmY7/H`f]|I5"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="WDHf5xH0oj47{bKJc]*o"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rollladen_komplett_Ansage</field></block></value> <value name="B"><block type="logic_boolean" id="Q0Xs2w~.aJJhE2UPD(7?"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="sayit" id="V1XZ*EEi/M~WNkxQ+(w+"><field name="INSTANCE">.0</field> <field name="LANGUAGE">de</field> <value name="MESSAGE"><shadow type="text" id="Rsn%H,ZRD.a?pVZ=%HHD"><field name="TEXT">Hallo, es werden nun alle Beschattungen geöffnet</field></shadow></value></block></statement> <next><block type="comment" id="SV}PjW{kH#6,+nwSt(Q,"><field name="COMMENT">Nachricht an oder aus</field> <next><block type="controls_if" id="yxw^/!-P}Ga?bBNl8L0k"><value name="IF0"><block type="logic_compare" id="Z2Zo~|b],MR.:4E{g2(6"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ogEB6~F4yGWS!88^}v}J"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy</field></block></value> <value name="B"><block type="logic_boolean" id="Y*b.SAWG~8jNcgAjO9^("><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="telegram" id="wrHrnA7c2Q0%7JHbfsR!"><value name="MESSAGE"><shadow type="text" id="T=g)hF^D9/0.CH.AgVc!"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow></value> <next><block type="pushover" id="pwM:~PTi_~O:/JH,=CX^"><field name="INSTANCE">.0</field> <field name="PRIORITY">0</field> <value name="MESSAGE"><shadow type="text" id="ZJv?*h3{{5PkkrlJRyJl"><field name="TEXT">Alle Rolläden sind gleichzeitig geöffnet worden, durch Programmauslösung am Tablet</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml>
-
Hallo Sven2013
Habe mir mal Dein Blockly angeschaut.
Du schreibst
@Sven2013:Ich möchte das mir in der Nachricht mitgeteilt wird welche Rollläden genau geschlossen worden sind. Also nicht mehr pauschal, sondern nur die tatsächlich gefahrennen Rollläden in meiner Nachricht erwähnt. `
In dem Blockly fährst Du immer alle gleichzeitig.
Da ich keine Namen der Geräte sehe, sondern nur "hm-rpc.0.MEQ…..LEVEL", sehe ich nicht ob die eventuell pro Raum sind.
Oder möchtest Du nach der Aktion wissen ob auch alle Rolladen wirklich oben oder unten sind?
Da ich Deine anderen Scripte nicht kenne, verstehe ich nicht warum Du einen Zustand, der nur zwei Zustände kennt (oben/unten), mit zwei boolschen Variablen steuerst.
Vielleicht gibt es ja dafür einen besonderen Grund.
Ich habe mir mal erlaubt Dein Blockly anzupassen.
Alles mit einer boolschen Variable.
Ich habe dafür mal die "Rolladen_komplett_zu" genommen.
Mehr braucht man eigentlich nicht. Da brauchtst Du in VIS auch nur ein Widget und musst keine Variable zurücksetzen.
Schau es Dir mal an.
Vielleicht hilft es Dir auch schon bei dem eigentlichen Problem.
Wenn nicht oder bei Fragen, einfach melden.
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="AV(xik??:``G5_MN[tiv" x="13" y="-12"><field name="COMMENT">Manuelle Auslösung alle Rollos rauf / runter</field>
<next><block type="on" id="{EKZRiaeJJ2dXbV|QC19"><field name="OID">javascript.0.Rollladen_komplett_zu</field>
<field name="CONDITION">ne</field><statement name="STATEMENT"><block type="controls_if" id="BP`g(Y1#nbc8BXZb77Ab"><mutation else="1"></mutation> <value name="IF0"><block type="logic_compare" id="l^r,}2y%3J^i1qVo.6=G"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="^brTX).6ev7*m(]V7!/Z"><field name="ATTR">val</field> <field name="OID">javascript.0.Rollladen_komplett_zu</field></block></value> <value name="B"><block type="logic_boolean" id="x;`29abrz[P6dpb=EJxG"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="comment" id="N=Ut4y`c)XB1rqHjuszz"><field name="COMMENT">Rolladen_komplett_zu = Wahr</field> <next><block type="comment" id="-XgFB.Qie!kNbsYu!WmD"><field name="COMMENT">Rollos runter</field> <next><block type="procedures_callnoreturn" id="p8!{nHGT2bGPKHwJzMc6"><mutation name="fahreRollos"><arg name="RolloLevel"></arg></mutation> <value name="ARG0"><block type="math_number" id="WxjGlqLr#R+F)*H]6Ee+"><field name="NUM">0</field></block></value> <next><block type="procedures_callnoreturn" id="0(CJg5aLxC#6!9agQDnj"><mutation name="Ansage"><arg name="Ansagetext"></arg></mutation> <value name="ARG0"><block type="text" id="G}N8b-|b6(1TIO}{Wgmm"><field name="TEXT">Hallo, es werden nun alle Beschattungen geschlossen</field></block></value> <next><block type="procedures_callnoreturn" id="K,`3EysCvDs[ZM/o(qU)"><mutation name="Handy"><arg name="Meldetext"></arg></mutation> <value name="ARG0"><block type="text" id="UA0*i,2OtzL.D_h5u7Nh"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></block></value></block></next></block></next></block></next></block></next></block></statement> <statement name="ELSE"><block type="comment" id="F][IjO:3WjPgx(O)pJU,"><field name="COMMENT">Rolladen_komplett_zu = Unwahr</field> <next><block type="comment" id="Y4+,fwCOa.uVMg[j71Yd"><field name="COMMENT">Rollos hoch</field> <next><block type="procedures_callnoreturn" id="1S?%y=7m2E].}DJ8d/X^"><mutation name="fahreRollos"><arg name="RolloLevel"></arg></mutation> <value name="ARG0"><block type="math_number" id="Zrr9OWZ.]hU4I:6MxS6Y"><field name="NUM">100</field></block></value> <next><block type="procedures_callnoreturn" id="|9Lmc.J?~ock%|}4q#FJ"><mutation name="Ansage"><arg name="Ansagetext"></arg></mutation> <value name="ARG0"><block type="text" id="fS`xc8[X|1i]nw_{IFUG"><field name="TEXT">Hallo, es werden nun alle Beschattungen geöffnet</field></block></value> <next><block type="procedures_callnoreturn" id="fE0B~[gy@Wa`r}1TpMT,"><mutation name="Handy"><arg name="Meldetext"></arg></mutation> <value name="ARG0"><block type="text" id="s`z}^XWj,H,XI`/GG3JO"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></block></value></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block>
<block type="procedures_defnoreturn" id="5i.8.lKonBwfk_#,``^L" x="13" y="638"><mutation><arg name="RolloLevel"></arg></mutation>
<field name="NAME">fahreRollos</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK"><block type="control" id="6Q[C@G(9ZNUz+E.-zgYG"><mutation delay_input="true"></mutation>
<field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">1000</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="variables_get" id="u]RHS}HbSqmGeUOzGW8U"><field name="VAR">RolloLevel</field></block></value>
<next><block type="control" id="{w=qzs3O*i~064t4pj,m"><mutation delay_input="true"></mutation>
<field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">2000</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="variables_get" id="A/Ep|Wj8YqLrVD{:?}7i"><field name="VAR">RolloLevel</field></block></value>
<next><block type="control" id="QB:rkbtHp@A5{3+gg66y"><mutation delay_input="true"></mutation>
<field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">3000</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="variables_get" id="zi?6m,aDOuk}}(zsNYqi"><field name="VAR">RolloLevel</field></block></value>
<next><block type="control" id="IP/ozr2_/@r.(D~5:MoG"><mutation delay_input="true"></mutation>
<field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">4000</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="variables_get" id="C2=1_#lR6oNzfF5:Ojp"><field name="VAR">RolloLevel</field></block></value></block></next></block></next></block></next></block></statement></block>
<block type="procedures_defnoreturn" id="Bxc329(y:BDj([pgl.hO" x="13" y="838"><mutation><arg name="Ansagetext"></arg></mutation>
<field name="NAME">Ansage</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK"><block type="comment" id="ni5qZBMI1zFB0@ZTyVT"><field name="COMMENT">Ansage An/Aus</field>
<next><block type="controls_if" id="|Ytea7|KnMvAv.(X*-{"><value name="IF0"><block type="logic_compare" id="d%l5VrH-6_.}A,L?{hYN"><field name="OP">EQ</field> <value name="A"><block type="get_value" id=":+#Q=8I*1=3LMXK@VUIu"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rollladen_komplett_Ansage</field></block></value> <value name="B"><block type="logic_boolean" id="A=Z5_G)1TKR=c!^avAz="><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="sayit" id="D
9n,W4A^I^WZlFllC?J"><field name="INSTANCE">.0</field>
<field name="LANGUAGE">de</field><value name="MESSAGE"><shadow type="text" id="2!hde](SRk0{yC]SNLQ7"><field name="TEXT">Hallo, es werden nun alle Beschattungen geschlossen</field></shadow> <block type="variables_get" id="P.BmB80Z/O~H78y+|z8,"><field name="VAR">Ansagetext</field></block></value></block></statement></block></next></block></statement></block>
<block type="procedures_defnoreturn" id="z7?dKFP!,03{m:}5rAbD" x="13" y="1088"><mutation><arg name="Meldetext"></arg></mutation>
<field name="NAME">Handy</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK"><block type="comment" id="5!f4=oY#]kuo~@.US]Pg"><field name="COMMENT">Handyansage an/Aus</field>
<next><block type="controls_if" id="[S=wMw7B!:JDHN(4=J9r"><value name="IF0"><block type="logic_compare" id="YpFKu9HbEBKg|)uyWzz"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="e=+=%vEtpxD.l-+E|@zg"><field name="ATTR">val</field> <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy</field></block></value> <value name="B"><block type="logic_boolean" id="X6|(I02rlN4}y-zN.I}+"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="telegram" id="q{!slWSqED{%j(_Q9-z1"><value name="MESSAGE"><shadow type="text" id="daA
c,{h|:5I1WFcxeHi"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow>
<block type="variables_get" id="T;Tc|peD,@/;PeQ+UU@d"><field name="VAR">Meldetext</field></block></value>
<next><block type="pushover" id="eGw2QegfDQy2X*usYt}0"><field name="INSTANCE">.0</field><field name="PRIORITY">0</field> <value name="MESSAGE"><shadow type="text" id="e[(,ipWtZQ-;{l756%#+"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow> <block type="variables_get" id="t!#MKe,]k3^[a5ROfK7@"><field name="VAR">Meldetext</field></block></value></block></next></block></statement></block></next></block></statement></block></xml>
! ````
Grüße
-
Hallo
Schon mal vielen Dank für deine Antwort. Das mit den variablen war mir bisher so gar nicht bewusst schaue ich mir aber gerne nachher mal an um daraus zu lernen.
In meinem eigentlichen Problem ging es um etwas anderes.
Ich versuche es noch mal an einem Beispiel zu verdeutlichen. Ich drücke die Taste alle Rollläden runter fahren in meinem VIS view.
Nun möchte ich per Telegramm oder alternativ per Say it die Rückmeldung bekommen Wohnzimmer Rollladen Esszimmer Rollladen Kinderzimmer Rollladen runter gefahren.
War zum Zeitpunkt des drücken der Kinderzimmer Rollladen allerdings schon unten soll die Ausgabe nur noch Wohnzimmer und Esszimmer Rollladen runter lauten.
Hast du eine Idee wie ich das hinbekomme?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Nun möchte ich per Telegramm oder alternativ per Say it die Rückmeldung bekommen Wohnzimmer Rollladen Esszimmer Rollladen Kinderzimmer Rollladen runter gefahren.
War zum Zeitpunkt des drücken der Kinderzimmer Rollladen allerdings schon unten soll die Ausgabe nur noch Wohnzimmer und Esszimmer Rollladen runter lauten.
Hast du eine Idee wie ich das hinbekomme? `
MehrereAber schaue Dir mal das Blockly an.
So wie ich Dich einschätze, wirst Du dann auch ein paar Ideen bekommen.
Grüße
-
@Sven2013 - Und? Bist Du weitergekommen?
Grüße
-
Hallo,
Sorry ich habe mich eine Weile nicht gemeldet da ich mich leider durch meine Arbeit verhindert war.
Nun bin ich aber wie der dabei und habe mich mit deiner Blocklyanpassung beschäftigt.
Ich habe mich zunächst mal darum gekümmert, ob mir tatsächlich eine Variable genügt. Hier bin ich leider noch nicht 100% sicher, aber ich glaube nicht.
Ich nutze zur Steuerung meiner Rollos mehrere Taster und Programme. So gibt es also leider nicht nur den Stand komplett auf oder komplett zu.
wenn ich nun dein Blockly nutze funtioniert dieses leider nicht immer. Beispiel: Ich habe (mit der Programmtaste) die Variable "Rollladen komplett zu" auf true gesetzt, dann fahren alle Rollläden zu. Perfekt!
Wenn ich nun einige Rollläden per Hand ein Stück auffahre, bleibt die Variable auf "true" stehen.
Nun möchte ich abends gerne wieder mit der Programmtaste "Rollladen komplett zu" alle Rollläden schließen. Dieses funktioniert aber nicht, da sich die Variable nicht ändert, sondern von true au true stehen bleibt. Somit löst das Blockly script leider nicht aus.
Aus diesem Grund hatte ich die 2 Variablen.
Der 2 Teil deines Blocklys mit dem Ansagetext ist der Einstieg für meinen ursprünglichen Wunsch.
Ich möchte das ich in dem Ansagetext nun "Sammel" welche Rolläden also tätsächlich ihren Stand durch die Programmauslösung verändert haben.
Beispiel:
Rollladen 1 - war auf 70%
Rollladen 2 - war auf 90%
Rollladen 3 - war auf 100%
Rollladen 4 - war auf 10%
Nun löse ich das Programm aus danach ist der Stand für alle 4 Rollladen 100%.
Meine Benachrichtigung soll dann lauten:
Rollladen 1, Rollladen 2, und Rolladen 4 sind nun geschlossen worden. Oprional vielleicht noch Rolladen 3 war bereits geschlossen.
Hast du dazu vielleicht noch einen weiteren Tipp?
Gruß Sven
-
Mein Script kannst du sicher für deine Gegebenheiten anpassen.
Bei mir ist meine Abwesenheit der Trigger.
Dann werden alle Fenster gecheckt auf deren Zustand. Wenn ein Fenster nicht geschlossen ist, bekomme ich ein Telegram mit der Angabe welche Tür/Fenster offen ist.
Bei den AUF - ZU Sensoren ist dann wahr und falsch, bei den Kipphebel Sensoren gibt es 0 (ZU), 1 (gekippt) und 2 (offen).
-
Wenn ich nun einige Rollläden per Hand ein Stück auffahre, bleibt die Variable auf "true" stehen.
Nun möchte ich abends gerne wieder mit der Programmtaste "Rollladen komplett zu" alle Rollläden schließen. Dieses funktioniert aber nicht, da sich die Variable nicht ändert, sondern von true au true stehen bleibt. Somit löst das Blockly script leider nicht aus.
Aus diesem Grund hatte ich die 2 Variablen. `
Ja, wenn man da manuell Zustände ändert ist das natürlich schlecht.Ich würde sagen zweite Variable und zweites Script (Blockly).
Meine Räume steuere ich alle separat.
Jeder Raum hat Blocklys für Rolladen, Heizung usw.
Da kann ich besser auf Situationen eingehen. Ist Besuch da, ist das Gästezimmer belegt, ist eine der Türen zur Terasse geöffnet usw…
Du brauchst also eine zweite Variable. Ich würde die aber allgemeiner benennen, damit man die auch für andere Dinge verwenden kann.
z.B. "Schlafmodus".
Wenn die auf "wahr" gesetzt wird, kannst Du mehrere Aktionen (Blocklys) starten. Rolladen und Fenster prüfen, Heizung usw.
Ich möchte das ich in dem Ansagetext nun "Sammel" welche Rolläden also tätsächlich ihren Stand durch die Programmauslösung verändert haben.
Beispiel:
Rollladen 1 - war auf 70%
Rollladen 2 - war auf 90%
Rollladen 3 - war auf 100%
Rollladen 4 - war auf 10%
Nun löse ich das Programm aus danach ist der Stand für alle 4 Rollladen 100%.
Meine Benachrichtigung soll dann lauten:
Rollladen 1, Rollladen 2, und Rolladen 4 sind nun geschlossen worden. Oprional vielleicht noch Rolladen 3 war bereits geschlossen.
Hast du dazu vielleicht noch einen weiteren Tipp? `
s.o.Fang mal mit einen zweiten Blockly an.
Wenn Du nicht weiterkommst melde Dich.
Grüße
-
Hallo Männer,
ich habe nun eine Kombination aus euren Blocklys genommen und bin meinem Ziel ganz nah.
Hier zunächst mal mein Code:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="AV(xik??:G5_MN[tiv" x="-437" y="-337"><field name="COMMENT">Manuelle Auslösung alle Rollos runter</field> ! <next><block type="on" id="{EKZRiaeJJ2dXbV|QC19"><field name="OID">javascript.0.Rollladen_komplett_zu</field> ! <field name="CONDITION">true</field> ! <statement name="STATEMENT"><block type="comment" id="[/co?!2njn#ajRV21u[J"><field name="COMMENT">Rollladen</field> ! <next><block type="control" id="x@;nm3.{*e=]?-jkcl^A"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">1000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="/-e3X=8?(9gowyOP?3O,"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="zio`+wA?ZIz)WB!yGf/q"><value name="IF0"><block type="logic_compare" id="~d=m?pWWu@Bi;3I~Uro4"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="uf0Y}Nd]e8D4S.[kOnrs"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1312281.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="^M5]?PuzoOBwjaX:OThu"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="?zW]vO^ZP?sjZdX@bBwc"><field name="VAR">Textteil</field> ! <value name="TEXT"><shadow type="text" id="Q(zPEJ}KDgoJWWrNelb6"><field name="TEXT">im Esszimmer,</field></shadow></value></block></statement> ! <next><block type="control" id="C@R.{!H?rkVxUv84rjN}"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">2000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="_2!y1;mo18=TuO0ein!W"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="PRkBmftHonqMJyFve`9l"><value name="IF0"><block type="logic_compare" id="oiG5j=E=W:5(jXB8V@XG"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="]F;C9po#{3jOm~v[D|(("><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1315134.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="@O_W#_q*m6mc:AhKaT(+"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="2Bl
!^f=%!K4M,tIjH"><field name="VAR">Textteil</field>
! <value name="TEXT"><shadow type="text" id="5uPkk=Ch4aV]n1J)b}t-"><field name="TEXT">im Wohnzimmer,</field></shadow></value></block></statement>
! <next><block type="control" id=".o^rimHhiwuSqXsYJGSi"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">3000</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="math_number" id="%C#3}e6gg,^+5=F~Q:XX"><field name="NUM">0</field></block></value>
! <next><block type="controls_if" id="IAkxK4?Vu%A%V%1_r/}_"><value name="IF0"><block type="logic_compare" id="e,]rF)H,3WgCp)Y%vy"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="7T~QI,q08DhU~YNt[?1L"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ1312656.1.LEVEL</field></block></value> ! <value name="B"><block type="math_number" id="f|9*8!BTc8IF1HUm8a5I"><field name="NUM">0</field></block></value></block></value> ! <statement name="DO0"><block type="text_append" id="hrKH!y1:5Y?9bM!qw2H5"><field name="VAR">Textteil</field> ! <value name="TEXT"><shadow type="text" id="OQL*WpZgBtm.M/KDVV=f"><field name="TEXT">bei Moritz,</field></shadow></value></block></statement> ! <next><block type="control" id="){h{0WDyFJfhy5mR:q(_"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">4000</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="Fz-V~!Px2_i%kAi7Xi-A"><field name="NUM">0</field></block></value> ! <next><block type="controls_if" id="]q.Xb*VQ,S{]|92,*X5%"><value name="IF0"><block type="logic_compare" id="DyNT^Y^pzYqaj?mF,|BX"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="?y
6/:qnrKYg=r:7G7~"><field name="ATTR">val</field>
! <field name="OID">hm-rpc.0.MEQ1312688.1.LEVEL</field></block></value>
! <value name="B"><block type="math_number" id="aNKC;Ew5P+%dBrC0p|A"><field name="NUM">0</field></block></value></block></value>
! <statement name="DO0"><block type="text_append" id="VL.N6QtNonweAv8_|J_p"><field name="VAR">Textteil</field>
! <value name="TEXT"><shadow type="text" id="{+K2{mux~R8H6r%]..#"><field name="TEXT">bei Nele</field></shadow></value></block></statement>
! <next><block type="procedures_callnoreturn" id="7{S:2wBBy(a)]bewkQ|)"><mutation name="Handy"><arg name="Meldungstext"></arg></mutation>
! <value name="ARG0"><block type="text_join" id="3kDQ~MaM:P95K5G@<I><mutation items="3"></mutation>
! <value name="ADD0"><block type="text" id="MmA/2//0weSwu@b
!8*"><field name="TEXT">Die Beschattung</field></block></value>
! <value name="ADD1"><block type="variables_get" id="De:=81lZdn^H6T!CoF4q"><field name="VAR">Textteil</field></block></value>
! <value name="ADD2"><block type="text" id="!TSe/:EodE5%ujY9L;"><field name="TEXT">ist nun komplett geschlossen!</field></block></value><s><em></s>!"></block></value> ! <next><block type="comment" id="D4WUmbKW,=o~J1b[653i"><field name="COMMENT">setzt Variable zurück</field> ! <next><block type="controls_if" id="G,IPh#w,}Gg}i7OcI~le"><value name="IF0"><block type="logic_compare" id="p3/CH+nV8iN#rX?5{9)o"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="^brTX).6ev7*m(]V7!/Z"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Rollladen_komplett_zu</field></block></value> ! <value name="B"><block type="logic_boolean" id="RAB}{@2W!(w
1sP)E:Ok"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="control" id="P3uJ3%/WXZ*||
5H%(1"><mutation delay_input="true"></mutation>
! <field name="OID">javascript.0.Rollladen_komplett_zu</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">6000</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="0LjH_nKNna(0:;E}rBBJ"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block>
! <block type="procedures_defnoreturn" id="FlU1RJhZoo4hjP
GWuO" x="488" y="-312"><mutation><arg name="Meldungstext"></arg></mutation>
! <field name="NAME">Handy</field>
! <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
! <statement name="STACK"><block type="comment" id="5!f4=oY#]kuo~@.US]Pg"><field name="COMMENT">Handyansage an/Aus</field>
! <next><block type="controls_if" id="|Ytea7|KnMvA`v.(X*-{"><value name="IF0"><block type="logic_compare" id="d%l5VrH-6_.}A,L?{hYN"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="e=+=%vEtpxD.l-+E|@zg"><field name="ATTR">val</field>
! <field name="OID">javascript.0.Ansagen_ein_oder_ausschalten.Rolladen_komplett_Nachricht_Handy</field></block></value>
! <value name="B"><block type="logic_boolean" id="A=Z5_G)1TKR=c!^avAz="><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="pushover" id="eGw2QegfDQy2X*usYt}0"><field name="INSTANCE">.0</field>
! <field name="PRIORITY">0</field>
! <value name="MESSAGE"><shadow type="text" id="e[(,ipWtZQ-;{l756%#+"><field name="TEXT">Alle Rolläden sind gleichzeitig runtergefahren worden, durch Programmauslösung am Tablet</field></shadow>
! <block type="variables_get" id="4VVRl:g5-ETh!zQ12TbQ"><field name="VAR">Meldungstext</field></block></value></block></statement></block></next></block></statement></block></xml> _Nun bekomme ich über Pushover meine gewünschte Nachricht. Zu mindest fast.Sie lautet: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Nele ist nun komplett geschlossen!
Aber warum ist das undefined dazwischen? Das bekomme ich einfach nicht weg.
Ist meine Lösung so praktikabel, oder sollte ich nochmal ein wenig umbauen?
Denn der Teil mit "die Rollläden X oder Y waren schon geschlossen habe ich ja noch nicht umgestzt.
Gruß Sven_
-
Hi Sven2013
Wenn ich Dein Blockly importiere ist alles OK.
Einfach mal in ein neues Script importieren.
Grüße
-
Also das Script funktioniert auch einwandfrei.
Nur bei der Nachricht die ich per Pushover bekomme ist das Wort undifined dazwischen. Woher kommt das?
Hier der Text meiner Pushover Nachricht.
ioBroker: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Moritz, bei Nele wird nun geschlossen!Die Beschattung war bereits geschlossen
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
ioBroker: Die Beschattung undefinedim Esszimmer, im Wohnzimmer, bei Moritz, bei Nele wird nun geschlossen!Die Beschattung war bereits geschlossen `
Aah, jetzt bin ich auf den richtigen Gleis.Bei Blockly muss man bei neuen, leeren Zeichenketten aufpassen.
Die sind nicht leer sondern liefern den Wert "undefine".
Man muss man erstmal "nichts" reinschreiben, damit sie leer sind.
Fast so wie bei der alten Mengenlehre.
"Wenn fünf Leute den Raum verlassen, muss einer wieder rein damit der Raum leer ist"
Wenn Du es so machst, funktioniert es.
Grüße
-
Hey rantanplan,
vielen Dank an dich. Deine Lösung hat das Ziel gebracht. Wie auch immer du darauf gekommen bist es ist der Hammer.
Gruß Sven