Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly Script für Wetteransage

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Blockly Script für Wetteransage

    This topic has been deleted. Only users with topic management privileges can see it.
    • rantanplan
      rantanplan last edited by

      @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 😉
      147_beispiel.png

      Grüße

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • M
          mandragora last edited by

          Hallo Ihr beiden.

          Danke erstmals für die Antworten.

          @rantanplan

          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

          1 Reply Last reply Reply Quote 0
          • M
            mandragora last edited by

            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

            1 Reply Last reply Reply Quote 0
            • T
              tempestas last edited by

              Nimm mal Satzzeichen mit auf in deine manuellen Textbausteine. Das sollte helfen

              1 Reply Last reply Reply Quote 0
              • rantanplan
                rantanplan last edited by

                Ich würde die Ansage in eine Funktion legen.

                Ist flexibler und man kann Gimmiks einbauen.
                147_beispiel.png

                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

                1 Reply Last reply Reply Quote 0
                • T
                  tempestas last edited by

                  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 Minuten

                  if (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){>

                  1 Reply Last reply Reply Quote 0
                  • M
                    mandragora last edited by

                    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)
                    1 Reply Last reply Reply Quote 0
                    • B
                      badplay last edited by

                      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?

                      1 Reply Last reply Reply Quote 0
                      • rantanplan
                        rantanplan last edited by

                        @badplay:

                        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 badplay

                        Mache zu dem Thema bitte einen neuen Thread auf.

                        Sonst kommt dieser hier völlig durcheinander.

                        Danke.

                        Grüße

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        773
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        11
                        2016
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo