NEWS
Blockly Script für Wetteransage
-
Hallo Leute,
Ich spinn gerade ein wenig herum und mich würde interessieren ob es möglich wäre mit Blockly folgendes Szenario zu erstellen.
Ich würde gerne morgens um 0700 Uhr mittels Sayit den aktuellen Wetterbereicht vorgelesen.
Hier wäre es cool wenn ich die aktuellen Temperaturen und Wetterdaten von Weatherunderground (Adapter ist installiert) abfragen könnte und das mittels Sayit ausgeben lassen könnte.
Ungefähr so in der Art: Guten morgen. Heute hat es {temperatur} Grad und der Wind bläst mit {geschwindigkeit}…...... usw.
Könnte ich das mit Blockly und Sayit so wie hier gedacht realisieren oder nicht ?
Bin für alle eure Vorschläge offen.
VIelen Dank schon im Voraus
lg
mandragora
-
Könnte ich das mit Blockly und Sayit so wie hier gedacht realisieren oder nicht ? `
Einfach mal ausprobieren :roll:
@mandragora:Bin für alle eure Vorschläge offen. `
Bitte schön
Grüße
-
Blockly kann ich nicht, aber aus dem "Müll" Topic kannst du dir passende Skriptteile raussuchen.
Also die Antwort ist "ja, geht". Habe ich nämlich selber auch umgesetzt. Morgens im Bad BWM als Auslöser, Ansage mit Wetter, Uhrzeit, Terminen des Tages geht los. Da kannst du ohne Probleme noch Wind und Co aufnehmen. Ich habe bei mir lediglich aktuelle Temperatur und Maxtemperatur sowie, ob und wann es binnen der nächsten 24 Std regnen soll (wichtig für meine Frau, ob sie Fahrrad oder Auto zur Arbeit fährt). Aber das ist beliebig erweiterbar.
Leider ist mein Pi tot (der NUC ist gerade angekommen, hurra). Ich kann dir also nicht mein volles Skript geben, zumindest nicht jetzt. Vielleicht aber schon morgen, wenn ich den NUC zum laufen bekomme. Kenne mich damit leider noch nicht aus
Edit:
guckst du hier:
http://forum.iobroker.net/viewtopic.php … 100#p64738
Das Skript dort ist aber nicht vollständig. Funktioniert, aber nicht mit allen Teilen wie oben genannt.
-
Hallo Ihr beiden.
Danke erstmals für die Antworten.
Danke fürs anstoßen.
Hab das gestern so in der Art auch schon probiert gehabt aber hab da einen Denkfehler gehabt.
So wie ich dein Blockly gesehen habe hats gefunkt
Werde es mal so probieren.
Vielen Dank nochmals
lg
mandragora
-
Hallo Leute,
Hab noch eine kleine Frage bei der ich aktuell nicht weiterkomme.
Hab zum testen mal ein kleines Blockly Script gemacht.
Funktioniert soweit gut jedoch werden mir die Sätze und Werte in einem durch vorgelesen ohne Pause.
Habe schon einiges probiert und gesucht wie ich hier eine Pause zwischen den Sätzen einfügen könnte aber irgendwie finde ich nix passendes und komme an dieser Stelle nicht weiter.
Kann mir jemand eventuell sagen wie ich das machen kann.
DAnke schon mal
lg
mandragora
3209_2017-09-29_17h35_32.jpg -
Nimm mal Satzzeichen mit auf in deine manuellen Textbausteine. Das sollte helfen
-
Ich würde die Ansage in eine Funktion legen.
Ist flexibler und man kann Gimmiks einbauen.
Export
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defnoreturn" id="faEx:oBOX:pd*gUqbV_7" x="212" y="88"><field name="NAME">Ansage</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
<statement name="STACK"><block type="comment" id="H^dCz,x4[w7R9UTo@Tk]"><field name="COMMENT">Variable AnsageText ausgeben</field>
<next><block type="comment" id="h+-0pw:l:I6AS|IlO[Yz"><field name="COMMENT">Timer stoppen falls läuft</field>
<next><block type="timeouts_cleartimeout" id="):BEF1B8(+(QGg/2d=GE"><field name="NAME">timeout</field>
<next><block type="sayit" id="CqAKY51vE0nc:oJxsJVM"><field name="INSTANCE">.0</field><value name="MESSAGE"><shadow type="text" id="@Jpzq~H7{cGCdH;ahCL6"><field name="TEXT">text</field></shadow> <block type="variables_get" id="2-kA,d|cAHU`tlk}SkQl"><field name="VAR">AnsageText</field></block></value> <next><block type="comment" id="WFwxFOK:gv]Klz1hkk4h"><field name="COMMENT">Pause machen</field> <next><block type="timeouts_settimeout" id="t?VbVAWp56#08^I,%kh*"><field name="NAME">timeout</field> <field name="DELAY">1</field> <field name="UNIT">sec</field> <statement name="STATEMENT"><block type="comment" id="oH=FTIv?[:P=rNP[nwC:"><field name="COMMENT">Dummy Timer</field></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block>
<block type="schedule" id="jg3Br-]@sT1iWROwo3Z9" x="-288" y="213"><field name="SCHEDULE">0 7 * * *</field>
<statement name="STATEMENT"><block type="variables_set" id="u21twqAcCYiWG{ic4ek"><field name="VAR">AnsageText</field>
<value name="VALUE"><block type="text_join" id="y{[w|?.8C]=bSi^yl@Vc"><mutation items="2"></mutation>
<value name="ADD0"><block type="text" id="JV#jdG7K;pS?y9(LU@f"><field name="TEXT">bla bla</field></block></value>
<value name="ADD1"><block type="text" id=")xCX?~bf7y08n[{@}FfP"><field name="TEXT">bla bla</field></block></value></block></value>
<next><block type="procedures_callnoreturn" id="}O/=Dhs,@X|nIVi^z/sN"><mutation name="Ansage"></mutation>
<next><block type="variables_set" id="Qc^SAw=JX/r1pw6^e%wJ"><field name="VAR">AnsageText</field>
<value name="VALUE"><block type="text_join" id="a:BCu!g|%q7_~G(jlxAc"><mutation items="2"></mutation>
<value name="ADD0"><block type="text" id="fHFU(2rK/IiI2NS:xKIw"><field name="TEXT">bla bla</field></block></value>
<value name="ADD1"><block type="text" id="a4.Edl7N53:NoY2==5xG"><field name="TEXT">bla bla</field></block></value></block></value>
<next><block type="procedures_callnoreturn" id="x@IuAL%4pt^13u-G{XMt"><mutation name="Ansage"></mutation>
<next><block type="controls_if" id="R@2TH2YR]%[KqKDrl/d"><statement name="DO0"><block type="variables_set" id="B2|s5=WZ])|L_8f!x7_U"><field name="VAR">AnsageText</field> <value name="VALUE"><block type="text" id="_F7XJ%U00(
bL{SqjS3{"><field name="TEXT">Regenschirm nicht vergessen</field></block></value>
<next><block type="procedures_callnoreturn" id="~k@X?fq#`v40XYE;2[m#"><mutation name="Ansage"></mutation></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block></xml>! ````
Grüße
-
Kein Blockly, aber falls es interessiert hier mein "Morgen Script", das ansagt:
Tag, Datum und Uhrzeit
Aktuelle Temperatur, Tagesmaximum
Regen erwartet wann, wieviel
Termine heute (oder + morgen oder + übermorgen)
Danach geht Sonos an für eine halbe Stunde und schaltet sich dann ab
Wind usw kann man natürlich sehr leicht implementieren.
! ````
/* ANSAGESKRIPT MIT DATUM, UHRZEIT, TEMPERATUR AKTUELL UND MAX SOWIE REGEN UND TERMINEN. TRIGGERBAR. OB HEUTE, HEUTE UND MORGEN ODER BIS EINSCHLIESSLICH UEBERMORGEN
ORIGNARES SKRIPT FÜR TEMPERATUR UND DATUM PLUS UHRZEIT VON SKORPIL UND PIX, IOBROKER FORUM
! ERGAENZT UM AUSLESEN DER TERMINE AUS HTML ANSTATT AUS DATA OBJECT ZUR VERMEIDUNG DER OBJECT PROBLEMATIK (TERMINE WERDEN NICHT IMMER EINGELESEN)
HTML TO PLAIN TEXT KONVERTIERUNG AUS STACKOVERFLOW FORUM; ALL CREDIT TO USER ELENDURWEN
! SUCHFUNKTION STACKOVERFLOW FORUM USER iammatthew2
! ZUSAMMENFUERHUNRG UND TRIGGER FUNKTION TEMPESTAS
! VERSION V.02 STATUS 30. APRIL 2017
! */
! // Trigger: Bewegungsmelder Variable aus Homematic;
! var SayVar = "hm-rega.0.11430";
! //Trigger
on(SayVar, function (data) {// Definition var tts = "sayit.0.tts.text"; var ist = getState(SayVar).val;
! // logs
log('SayVar: ' + SayVar);
log('TTS: ' + tts);
log('ist: ' + ist);
! //Lautstärke einstellen
var vol ="sayit.0.tts.volume";
setState (vol,15);
! //Wochentag ermitteln
var d = new Date ();
var weekday = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
var w = weekday[d.getDay()];
! //Tagesdatum ermitteln
var t = d.getDate();
! //Monat ermitteln
var month = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var m = month[d.getMonth()];
! //Jahr ermitteln
var j = d.getFullYear();
! //Stunde ermitteln
h = d.getHours();
! //Minute ermitteln
mi = d.getMinutes();
! // ********************************************************************
// Die Außentemperatur ist xx.
// Einfache Temperaturansage mit SayIt.
// Variante 1 mittels splitten der Temperatur, damit die Ansage nicht
// "Es sind 18 Punkt 2 Grad " sagt.
// *********************************************************************
! var Temperatursensor = getState("hm-rpc.0.NEQ1381269.1.TEMPERATURE"); /Temperatursensor:1.TEMPERATURE/
var temperatur = Temperatursensor.val.toString();
var temp_array = [];
! temp_array = temperatur.split(".");
! // Fange leere Nachkommastellen ab. Das passiert, wenn die Temperatur z. B. 18.0 ist.
// Es wird dann nur "18" gelesen.
if (!temp_array[1]) {
temp_array[1] = "0";
log("Die Nach-Kommastelle in temp_array[1] war nicht vorhanden und wird nun fest auf 0 gesetzt.");
}// ****************************** // Wird Regen erwartet? // ****************************** var idRain = 'javascript.0.Wunderground.Regentimer'; // wird in anderem Skript angelegt var idRainValue; var idRainValueText; idRainValue = getState(idRain).val; idRainValueText = idRainValue.replace(':00h', ' Uhr'); // bereinigen des Anzeigetextes in eine sprechbare Form //log(idRainValue); //log(idRainValueText);
!
// ********************************* // Tageshöchstemperatur // ********************************* var maxTemp; maxTemp = getState("weatherunderground.0.forecast_day.0d.temp.high"/*high temperature*/).val;
! // **************************************************************************************
// Termine auswerten aus html. Bereinigung der HTML Tags und Konvertierung in Plain Text
// **************************************************************************************var inhalt = getState("ical.0.data.html"/*HTML iCal table*/); var inhaltString = inhalt.val.toString(); var inhaltStringReplace = inhaltString; var inhaltStringText; var i_search; //******************************************************************************************************* // Festlegen, ob nur heute [1], heute und morgen [2] oder einschliesslich uebermorgen angesagt wird [3] //*******************************************************************************************************
! var terminAnsage = 2; // hier festlegen
! //**************************************************************************************
// Suchfunktion für Termin-Cutoff
// Sucht nach dem n-ten definierten Muster, hier "§$%" und gibt die Fundstelle zurück.
// Hinter dieser Fundstelle wird dann der Text gekürzt
// Sinnloses Muster genommen, da dies wohl nirgends normalerweise vorkommt
//*****************************************************************************************// Suchfunktion für Termin-Cutoff function nthIndex(str, pat, n){ var L= str.length, i= -1; while(n-- && i++<l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" remove/all/inside/script/and/style/tags/inhaltstringreplace="inhaltStringReplace.replace(/<script.*">[\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, ""); inhaltStringReplace=inhaltStringReplace.replace(/<style.*>[\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, ""); // remove BR tags. Werden durch sinnlose Zeichenkette ersetzt, nach der später gesucht wird inhaltStringReplace=inhaltStringReplace.replace(/
/gi, ". §$%");
inhaltStringReplace=inhaltStringReplace.replace(/<br\s>/gi, ". §$%");
inhaltStringReplace=inhaltStringReplace.replace(/<br>/gi, ". §$%");// remove all else inhaltStringReplace=inhaltStringReplace.replace(/<(?:.|\s)*?>/g, ""); // get rid of html-encoded characters: inhaltStringReplace=inhaltStringReplace.replace(/ /gi," "); inhaltStringReplace=inhaltStringReplace.replace(/&/gi,"&"); inhaltStringReplace=inhaltStringReplace.replace(/"/gi,'"'); inhaltStringReplace=inhaltStringReplace.replace(//gi,'>'); // Punkt ans Ende setzen inhaltStringReplace=inhaltStringReplace+". §$%"; // log("Text ohne HTML mit 'sinnlos String': "+inhaltStringReplace); // Termine heute zaehlen var terminHeuteCount = inhaltStringReplace.split("Heute").length -1; //log("Anzahl Termine heute: "+terminHeuteCount); // Termine morgen zählen var terminMorgenCount = inhaltStringReplace.split("Morgen").length -1; // log("Anzahl Termine morgen: "+terminMorgenCount); // Termine übermorgen zählen var terminUebermorgenCount = inhaltStringReplace.split("Übermorgen").length -1; // log("Anzahl Termine übermorgen: "+terminUebermorgenCount); // Termine addieren var termineCount = (terminHeuteCount + terminMorgenCount + terminUebermorgenCount); var termineHeuteMorgenCount = (terminHeuteCount +terminMorgenCount); // log("Termine heute und morgen gesamt: " +termineHeuteMorgenCount); // log("Anzahl Termine gesamt: " +termineCount); //******************************************* // Text kürzen je nach gewählter Selektion // ****************************************** if (termineCount === 0) { inhaltStringText ="Es liegen keine Termine an"; } else { switch(terminAnsage) { case 1: if (terminHeuteCount === 0) { inhaltStringText ="Es liegen keine Termine an"; } else{ nthIndex(inhaltStringReplace,"§$%", terminHeuteCount); // nutzen der Suchfunktion zum Suchen der n-ten sinnlosen Zeichenkette inhaltStringText = inhaltStringReplace.slice(0,i_search); for (k =0; k < terminHeuteCount; k++) { inhaltStringText = inhaltStringText.replace("§$%", ""); // rausnehmen der sinnlosen Zeichen, damit diese nicht mitgesprochen werden } inhaltStringText = "Folgende Termine stehen an: "+inhaltStringText; // neu eingefügt } break; case 2: if (termineHeuteMorgenCount === 0) { inhaltStringText ="Es liegen keine Termine an"; } else{ nthIndex(inhaltStringReplace,"§$%", termineHeuteMorgenCount); // nutzen der Suchfunktion zum Suchen der n-ten sinnlosen Zeichenkette inhaltStringText = inhaltStringReplace.slice(0,i_search); for (k =0; k < termineHeuteMorgenCount; k++) { inhaltStringText = inhaltStringText.replace("§$%", ""); // rausnehmen der sinnlosen Zeichen, damit diese nicht mitgesprochen werden } inhaltStringText = "Folgende Termine stehen an: "+inhaltStringText; // neu eingefügt } break; case 3: if (termineCount === 0) { inhaltStringText ="Es liegen keine Termine an"; } else{ nthIndex(inhaltStringReplace,"§$%", termineCount); // nutzen der Suchfunktion zum Suchen der n-ten sinnlosen Zeichenkette inhaltStringText = inhaltStringReplace.slice(0,i_search); for (k =0; k < termineCount; k++) { inhaltStringText = inhaltStringText.replace("§$%", ""); // rausnehmen der sinnlosen Zeichen, damit diese nicht mitgesprochen werden } inhaltStringText = "Folgende Termine stehen an: "+inhaltStringText; // neu eingefügt } } }
// log("Letzte Fundstelle an Position "+i_search);
log("Die bereinigte Ansage ist: " +inhaltStringText);!
// ANSAGE ausfuehren, danach sonos box starten für 30 Minutenif (data.newState.val === true) {
setState (tts, "Guten Morgen, heute ist " + w + " der " + t + "te " + m + j + ". Es ist" + h + " Uhr und " + mi + " Minuten."
+ " Die Aussentemperatur beträgt aktuell " + temp_array[0] + "," + temp_array[1] + " Grad und das Tagesmaximum soll "
+maxTemp +" Grad erreichen. " +idRainValueText+ " " +inhaltStringText );! setStateDelayed("sonos.0.root.192_168_2_7.favorites_set"/favorites_set/,'1000 Oldies', 35000); // nach 35 Sekunden wird 1000 Oldies eingestellt
setState("sonos.0.root.192_168_2_7.volume"/volume/, 12); // Anpassen der Lautstärke
! setStateDelayed("sonos.0.root.192_168_2_7.state", "stop", 1860000); // nach 30 Minuten wird ausgeschaltet
! }});</br></br\s></style.*></l){>
-
Hallo Leute
Also ich bins jetzt mal pragmatisch angegangen und habs doch noch mal nach meiner Variante versucht da ich eure Vorschläge nicht ganz gerafft habe
Die Pausen habe ich einfach mit mehreren Satzzeichen gelöst was wunderbar funktioniert.. Vielleicht nicht so schön aber es geht
Hab hier dann 2 Zeitpläne für unterschiedliche Tablets und Zeiten erstellt.
Macht jetzt mal genau das was es machen soll.
Werde mir eure vorgeschlagenen Sachen aber dennoch ansehen.
Danke dafür.
lg
mandragora
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="jg3Br-]@sT1iWROwo3Z9" x="-237" y="-112"><field name="SCHEDULE">0 6,8 * * 1-5</field>
<statement name="STATEMENT"><block type="sayit" id="CqAKY51vE0nc:oJxsJVM"><field name="INSTANCE">.0</field><value name="MESSAGE"><shadow type="text" id="@Jpzq~H7{cGCdH;ahCL6"><field name="TEXT">text</field></shadow> <block type="text_join" id="y{[w|?.8C]=bSi^yl@Vc"><mutation items="14"></mutation> <value name="ADD0"><block type="text" id="EI3+GCKKd[f.!p0mk{jN"><field name="TEXT">Einen wunderschönen guten Morgen.</field></block></value> <value name="ADD1"><block type="text" id="q^(wc=MZvaA7TKlgHyZ4"><field name="TEXT">..........</field></block></value> <value name="ADD2"><block type="text" id="suAwmb6g/3=6`G}JTQnh"><field name="TEXT">Die aktuelle Temperatur beträgt</field></block></value> <value name="ADD3"><block type="get_value" id="g~;Xb/v;/V8)4oh9y+0_"><field name="ATTR">val</field> <field name="OID">weatherunderground.0.current.temp_c</field></block></value> <value name="ADD4"><block type="text" id="BZYM#;Cn~M(V/wrN!u_R"><field name="TEXT">Grad.</field></block></value> <value name="ADD5"><block type="text" id="r:FAFP(#_bv(S5*h?(G#"><field name="TEXT">..........</field></block></value> <value name="ADD6"><block type="text" id="7r|xQvRQ]Ur6G6jWv=tD"><field name="TEXT">Es besteht heute eine</field></block></value> <value name="ADD7"><block type="get_value" id="-N?[aG*F:X@1Q{9j5D5,"><field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.10h.pop</field></block></value> <value name="ADD8"><block type="text" id="4Fw@doT{Y0tUTR.eVC%I"><field name="TEXT">prozentige Wahrscheinlichkeit das es regnet.</field></block></value> <value name="ADD9"><block type="text" id="AxhQ|jVppQI:sqUQ;B.P"><field name="TEXT">..........</field></block></value> <value name="ADD10"><block type="text" id="w?Y,v}rsvlMo35?nP|Nc"><field name="TEXT">Es ist heute</field></block></value> <value name="ADD11"><block type="get_value" id="U#JTuGo%U8}7G4zx7Sko"><field name="ATTR">val</field> <field name="OID">hm-rega.0.19622</field></block></value> <value name="ADD12"><block type="text" id="U+h5/SN8z4KKF_J{tQ4y"><field name="TEXT">..........</field></block></value> <value name="ADD13"><block type="text" id="_h}TjWG2Y:9yBS(Qv{L;"><field name="TEXT">Ich wünsche euch einen wunderschönen Tag.</field></block></value></block></value></block></statement></block>
<block type="schedule" id="aYWQHR^Nbm!Ud_vUvO7." x="512" y="-112"><field name="SCHEDULE">0 7,8 * * 0,6</field>
<statement name="STATEMENT"><block type="sayit" id="9mN=|ghJ^[}[274*pa5P"><field name="INSTANCE">.1</field><value name="MESSAGE"><shadow type="text" id="@Jpzq~H7{cGCdH;ahCL6"><field name="TEXT">text</field></shadow> <block type="text_join" id="XOBXg=iwMsW-~X3MIzzj"><mutation items="14"></mutation> <value name="ADD0"><block type="text" id="ccftzws.^2qmjiO*L{sL"><field name="TEXT">Einen wunderschönen guten Morgen.</field></block></value> <value name="ADD1"><block type="text" id="qgX(F_`^85M5/H+qH]Da"><field name="TEXT">..........</field></block></value> <value name="ADD2"><block type="text" id="Li^WeANWmv;D7X#wAT5}"><field name="TEXT">Die aktuelle Temperatur beträgt</field></block></value> <value name="ADD3"><block type="get_value" id="o,SZaY)nZJ%:(7FZXR=q"><field name="ATTR">val</field> <field name="OID">weatherunderground.0.current.temp_c</field></block></value> <value name="ADD4"><block type="text" id="!s#O`L;O@||^98|bwLuu"><field name="TEXT">Grad.</field></block></value> <value name="ADD5"><block type="text" id=".ohrhO{vQ]:YoV{Z5g4P"><field name="TEXT">..........</field></block></value> <value name="ADD6"><block type="text" id="Y4pkC1DJ(BKABoS;hDIC"><field name="TEXT">Es besteht heute eine</field></block></value> <value name="ADD7"><block type="get_value" id="Bz5WOSLPCP9A2Leqt[Pa"><field name="ATTR">val</field> <field name="OID">weatherunderground.0.forecast.10h.pop</field></block></value> <value name="ADD8"><block type="text" id="+UROWhu-2onc2O%9/!7J"><field name="TEXT">prozentige Wahrscheinlichkeit das es regnet.</field></block></value> <value name="ADD9"><block type="text" id="7s+%L_z=*{g:S`KqfLX3"><field name="TEXT">..........</field></block></value> <value name="ADD10"><block type="text" id="G8wreNCzbcx7PksWY)I("><field name="TEXT">Es ist heute</field></block></value> <value name="ADD11"><block type="get_value" id="kfly:0=Z?n*fLeZQG;10"><field name="ATTR">val</field> <field name="OID">hm-rega.0.19622</field></block></value> <value name="ADD12"><block type="text" id="tP;G[T1kGD)Xk7z#2t]*"><field name="TEXT">..........</field></block></value> <value name="ADD13"><block type="text" id="Lv@y%wFGc_@zOaObY{!k"><field name="TEXT">Ich wünsche euch einen wunderschönen Tag.</field></block></value></block></value></block></statement></block>
<block type="controls_if" id="Y]f^2yqDQh~lQ9W{B#NM" x="363" y="839"><value name="IF0"><block type="logic_compare" id="Z?j`jLH?%rmL~HCW+5eW"><field name="OP">EQ</field>
<value name="A"><block type="get_value" id="O+X@YwXH5~f-Nn2r9ieI"><field name="ATTR">val</field>
<field name="OID">ical.0.events.Sperrmüll</field></block></value>
<value name="B"><block type="logic_boolean" id=";A*a+fSa(MFcNM;t;B+!"><field name="BOOL">TRUE</field></block></value></block></value>
<statement name="DO0"><block type="sayit" id="!LhG|YQ~0]JWG],gUGl5"><field name="INSTANCE">.0</field>
<field name="LANGUAGE">de</field><value name="MESSAGE"><shadow type="text" id="~f:}.]L58)USM}dKogf]"><field name="TEXT">Achtung. Heute ist Sperrmüllabgabe</field></shadow></value></block></statement> <next><block type="controls_if" id="b-4DZ!VXC14J?`s#s*et"><value name="IF0"><block type="logic_compare" id="s%f]|~;l`Sh:lM0dh*q*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="RH6BdgiPt*X*tLjGCsIR"><field name="ATTR">val</field> <field name="OID">ical.0.events.Altpapier</field></block></value> <value name="B"><block type="logic_boolean" id="D7{ef)LDP=i{dD16G/7["><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="sayit" id="YHQq3+(aU+(=^uWjQ9qr"><field name="INSTANCE">.0</field> <field name="LANGUAGE">de</field> <value name="MESSAGE"><shadow type="text" id="HsjBEm)#YoOiQtQ9gVHD"><field name="TEXT">Achtung. Heute wird das Altpapier abgeholt</field></shadow></value></block></statement></block></next></block></xml>
[3209_2017-10-04_20h51_36.jpg](/assets/uploads/files/3209_2017-10-04_20h51_36.jpg)
-
Geil das such ich
Wie habt ihr die Ausgabe geregelt was nehmt ihr für Boxen dazu? Habe einen echo dot bald ist der echo plus da. Aber so wie ich lese kann man ihn als Bluetooth Gerät nicht so richtig nutzen am raspberry pi oder gibt es was neues?
Wie macht ihr das?
-
Geil das such ich
Wie habt ihr die Ausgabe geregelt was nehmt ihr für Boxen dazu? Habe einen echo dot bald ist der echo plus da. Aber so wie ich lese kann man ihn als Bluetooth Gerät nicht so richtig nutzen am raspberry pi oder gibt es was neues?
Wie macht ihr das? `
Hallo badplayMache zu dem Thema bitte einen neuen Thread auf.
Sonst kommt dieser hier völlig durcheinander.
Danke.
Grüße