Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. DWD -> per Telegram, Sound auf Tablet, View Tablet wechseln, etc.

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    DWD -> per Telegram, Sound auf Tablet, View Tablet wechseln, etc.

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      Hallo,

      habe mal für mich ein "DWD" Script geschrieben.

      Das Script macht folgendes:

      • DWD Meldungen werden als Telegram verschickt.

      • Seite "DWD View" in VIS wird angezeigt.

      • Sound auf Tablet wird bei Änderung der Anzahl ausgegeben.

      Nun das Script:

      ! ````
      // DWD: Wetterwarnungen
      ! // Anzahl DWD geändert
      function weiter() {
      var anzahl = getState('javascript.0.Status.DWD_Anzahl').val; // Anzahl DWD
      var Sprache = getState("hm-rega.0.29816").val; // Auto Sprachausgabe
      var request = require ('request');
      var vText = "";

      // Wetterwarnung an telegram versenden
      if (anzahl === 0) {
          sendTo('telegram', "Wetterwarnung Anzahl: 0");   
      } else if (anzahl >= 1) {
      
          vText = 'Wetterwarnung Anzahl: ' + anzahl + '\n';
      

      ! if (anzahl >= 1) {
      vText = vText + "----------------------------------------------------------\n";
      vText = vText + "1: " + getState("dwd.0.warning.headline").val + "\n";
      vText = vText + getState("dwd.0.warning.description").val + "\n";
      vText = vText + "von " + getState("dwd.0.warning.begin").val + " Uhr \n";
      vText = vText + "bis " + getState("dwd.0.warning.end").val + " Uhr";
      }
      if (anzahl >= 2) {
      for (x=2; x <= anzahl; x++) {
      vText = vText + "\n----------------------------------------------------------\n";
      vText = vText + x + ": " + getState("dwd.0.warning" + (x-1) + ".headline").val + "\n";
      vText = vText + getState("dwd.0.warning" + (x-1) + ".description").val + "\n";
      vText = vText + "von " + getState("dwd.0.warning" + (x-1) + ".begin").val + " Uhr \n";
      vText = vText + "bis " + getState("dwd.0.warning" + (x-1) + ".end").val + " Uhr";
      }
      }
      sendTo('telegram', vText);
      }
      ! // Sprachausgabe
      if (Sprache === true) {
      if (anzahl === 0) {
      request('http://192.168.243.76:50000/track=intercom-whistle.wav');
      setTimeout(setState('sayit.0.tts.text', "Es liegt keine Unwetterwarnung mehr vor. Alles bestens"), 3000);
      } else if (anzahl === 1){
      request('http://192.168.243.76:50000/track=intercom-whistle.wav');
      setTimeout(setState('sayit.0.tts.text', "Es liegt eine Unwetterwarnung vor."), 3000);
      } else if (anzahl >= 2) {
      request('http://192.168.243.76:50000/track=intercom-whistle.wav');
      setTimeout(setState('sayit.0.tts.text', "Es liegen " + anzahl + " Unwetterwarnungen vor."), 3000);
      }
      }
      ! // View wechseln
      if (anzahl >= 1){
      View_change ('DWD', 0);
      setTimeout(function() {
      View_change ('Titel', 0);
      }, 300000); // nach 5 Min. wieder auf Titel
      }
      }
      ! // Anzahl DWD ermitteln
      function weiter1() {
      var anzahl = 0;
      if (getState("dwd.0.warning.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning1.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning2.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning3.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning4.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning5.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning6.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning7.headline").val !== "") anzahl++;
      if (getState("dwd.0.warning8.headline").val !== "") anzahl++;
      setState('javascript.0.Status.DWD_Anzahl', anzahl);
      }
      ! on({id: "javascript.0.Status.DWD_Anzahl", change: "ne" }, function() { // Anzahl geändert
      log("Auslöser DWD Anzahl");
      weiter();
      });
      ! schedule("6,21,36,51 * * * *", function () {
      log("Auslöser Schedule");
      weiter1(); // Anzahl ermitteln
      });
      ! ````

      Damit das Script läuft muss folgendes gemacht werden:

      • Diese "javascript.0.Status.DWD_Anzahl" Variable anlegen unter Objekte.

      • Die wav Datei unter Sound muss natürlich erreichbar sein. Bei ist das Programm "HomeMedia 24" (ich glaub so heißt so) auf dem Tablet installiert.

      • Die "View_change" ist ein globales Programm. Und zwar dieses:

      ! // View wechseln Parameter: (Seite, Delayed) ! function View_change (data, x) { setState("vis.0.control.instance", 'FFFFFFFF'); setState("vis.0.control.data", data); if (x > 0) { setStateDelayed("vis.0.control.command", 'changeView', x); } else { setState("vis.0.control.command", 'changeView'); } } !

      Die Views müssen natürlich vorhanden sein.

      Die View auf dem Tablet sieht dann so aus (insgesamt 3x vorhanden; wg. max. 9 Meldungen)
      filename="bild1.jpg" index="0">~~

      Viel Spaß damit.

      mfg

      Dieter

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

      Support us

      ioBroker
      Community Adapters
      Donate

      942
      Online

      31.7k
      Users

      79.7k
      Topics

      1.3m
      Posts

      1
      1
      648
      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