Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. DWD -> per Telegram, Sound auf Tablet, View Tablet wechseln, etc.

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    703

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
1 Beiträge 1 Kommentatoren 652 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #1

    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


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    775

    Online

    32.5k

    Benutzer

    81.6k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe