Guten Morgen zusammen,
habe mich heute mal weiter mit Blockly beschäftigt.
Habe mir das für die Ansage jetzt erstmal so gebastelt:
Blockly:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="0#2N9{f1qzS.?aQjyF^t" x="62" y="6"><field name="COMMENT">Ansage Wetter Warnung</field>
! <next><block type="on" id="{(/0/XswO#kI,[z2]L"><field name="OID">dwd.0.warning.description</field>
! <field name="CONDITION">ne</field>
! <statement name="STATEMENT"><block type="comment" id="lQLZ-.DmLp46gH#A(:"><field name="COMMENT">Ansage in Zeitraum</field>
! <next><block type="debug" id="yqjq:JM+5|2Rr9_~1S!n"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="rPI@5!j.egewYu#x7o5Q"><field name="TEXT">Änderung Wetterwarnung</field></shadow></value>
! <next><block type="controls_if" id="@K{38@g4[,lRQVs1eSY*"><value name="IF0"><block type="time_compare_ex" id="Q0%APiD4]sG/K=O/XBc"><mutation end_time="true" actual_time="true"></mutation> ! <field name="USE_ACTUAL_TIME">TRUE</field> ! <field name="OPTION">between</field> ! <value name="START_TIME"><shadow type="text" id="hD]^-0=mMS5T{5B|u~s^"><field name="TEXT">09:00</field></shadow></value> ! <value name="END_TIME"><shadow type="text" id="2,#Yrkh|9-j[8)|7S)3K"><field name="TEXT">23:00</field></shadow></value></block></value> ! <statement name="DO0"><block type="debug" id=":y3?1.vBaGiqvENrj8p"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="f^)TeKU?Q!3_.Ej[6ivs"><field name="TEXT">IPAD AN</field></shadow></value>
! <next><block type="control" id="{WnshUZH-i@6Lg38CD3}"><mutation delay_input="false"></mutation>
! <field name="OID">hm-rpc.0.MEQ0201401.1.STATE</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="m6G%H?[!JtBqzsl7!Hu9"><field name="BOOL">TRUE</field></block></value>
! <next><block type="comment" id="~O]]/P%WI{x;TV.hfLc"><field name="COMMENT">Ansage mit Verzögerung</field>
! <next><block type="timeouts_settimeout" id="~T[e.?@YO)jp;c(|;!?"><field name="NAME">timeout</field>
! <field name="DELAY">2000</field>
! <statement name="STATEMENT"><block type="sayit" id="J)T;J+yr},36p,wbCt3Y"><field name="INSTANCE">.1</field>
! <field name="LANGUAGE">de</field>
! <field name="LOG">debug</field>
! <value name="VOLUME"><block type="variables_get" id="lhbkT^B0:wfs~!^pa)q"><field name="VAR">100</field></block></value> ! <value name="MESSAGE"><shadow type="text" id="o{T4nu,J5miCy=WGyjm?"><field name="TEXT">Test</field></shadow> ! <block type="text_join" id=";u-JOA:L:Mbn-10BCYB"><mutation items="6"></mutation>
! <value name="ADD0"><block type="get_value" id="}Q!.?u,~ekR_U+eKmj2"><field name="ATTR">val</field>
! <field name="OID">dwd.0.warning.headline</field></block></value>
! <value name="ADD1"><block type="text" id="ZS/3]BbZR:Q)imJ0IwP-"><field name="TEXT">Von</field></block></value>
! <value name="ADD2"><block type="get_value" id="dlgKvcKmC}I9PM)T.Ycd"><field name="ATTR">val</field>
! <field name="OID">dwd.0.warning.begin</field></block></value>
! <value name="ADD3"><block type="text" id="T-%]nCUX:Qq(SnHAyO@2"><field name="TEXT">bis</field></block></value>
! <value name="ADD4"><block type="get_value" id="-.;_F()4hAP29[:x,sSE"><field name="ATTR">val</field>
! <field name="OID">dwd.0.warning.end</field></block></value>
! <value name="ADD5"><block type="get_value" id="w;c:G:2=V+}+8iP4(6x"><field name="ATTR">val</field>
! <field name="OID">dwd.0.warning.description</field></block></value></block></value></block></statement>
! <next><block type="debug" id="zp7aG:e4YZ4v)o1(oP"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id=";GIT][`[Hnfi#{((;)Vu"><field name="TEXT">IPAD aus nach 30 Sekunden</field></shadow></value>
! <next><block type="control" id="n=zNe6R.0_(QoGKI+DNu"><mutation delay_input="true"></mutation>
! <field name="OID">hm-rpc.0.MEQ0201401.1.STATE</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">30000</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="J:+ZU*3h^KFb-6g,LMk+"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></statement></block></next></block></xml>
Javascript Code:
! var my_100, timeout;
! // Ansage Wetter Warnung
! on({id: "dwd.0.warning.description"/Warning description/, change: "ne"}, function (obj) {
! var value = obj.state.val;
! var oldValue = obj.oldState.val;
! // Ansage in Zeitraum
! console.log('Änderung Wetterwarnung');
! if (compareTime('09:00', '23:00', "between", null)) {
! console.log('IPAD AN');
! setState("hm-rpc.0.MEQ0201401.1.STATE"/HM-Dis-TD-T MEQ0201401:1.STATE/, true);
! // Ansage mit Verzögerung
! timeout = setTimeout(function () {
! setState("sayit.1.tts.text", "de;my_100;" + ([getState("dwd.0.warning.headline").val,'Von',getState("dwd.0.warning.begin").val,'bis',getState("dwd.0.warning.end").val,getState("dwd.0.warning.description").val].join('')));
! console.debug("sayIt[de][Volume - my_100]: " + ([getState("dwd.0.warning.headline").val,'Von',getState("dwd.0.warning.begin").val,'bis',getState("dwd.0.warning.end").val,getState("dwd.0.warning.description").val].join('')));
! }, 2000);
! console.log('IPAD aus nach 30 Sekunden');
! setStateDelayed("hm-rpc.0.MEQ0201401.1.STATE"/HM-Dis-TD-T MEQ0201401:1.STATE/, false, 30000, false);
! }
! });
Allerdings bekomme ich keine Ansage sondern diesen Fehler im Log:
sayit.1 2017-01-07 10:24:27.784 error Cannot get file: received file is too short
sayit.1 2017-01-07 10:24:27.698 info saying: Amtliche WARNUNG vor LEICHTEM SCHNEEFALLVon07.01.2017 06:00bis07.01.2017 14:00
Sayit ist so befüllt:
de;my_100;Amtliche WARNUNG vor LEICHTEM SCHNEEFALLVon07.01.2017 06:00bis07.01.2017 14:00
Sayit nutzt IVONA und wenn ich den Text ohne "de;" und ohne "my_" absende funktioniert es.
Ist das jetzt ein Fehler von dem Blockly Modul oder von SayIt?
EDIT: Das "my_" habe ich wegbekommen. Da hatte ich etwas falsches ausgewählt. Allerdings kommt immer noch das "de;" mit und sobald ich das absende funktioniert es nicht.