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. [Problem] Ungewollte SayIt-Ansage nach ioBroker-Neustart

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    918

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Problem] Ungewollte SayIt-Ansage nach ioBroker-Neustart

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 915 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.
  • D Offline
    D Offline
    dtp
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe fogendes sayIt-Skript bei mir laufen:

    var idSayIt = "sayit.0.tts.text";
    var date;
    
    // EG Flur SV Tablet Kamera
    on({id: "hm-rega.0.2727", val: true}, function(){
      setState(idSayIt, 'de;100;Achtung. Ihr Einbruch wurde registriert und wir haben bereits die Polizei verständigt.'); 
    });
    
    // CCU CUxD Timer Abwesenheit.WORKING
    on({id: "javascript.0.AlarmCountdown", change: "gt"}, function(obj){
      setState(idSayIt, 'Achtung. Alarmanlage in '+obj.state.val+' Sekunden scharf. Zum Entschärfen Haustür aufschließen.'); 
    });
    
    // Heizungsanlage Betriebsart
    on({id: "viessmann.0.get.VitoBetriebsart", change: "ne"}, function(obj){
      date = new Date();
      if((6 < date.getHours()) && (date.getHours() < 23)){
        setState(idSayIt, 'Betriebsart der Heizunmgsanlage auf '+obj.state.val+' geändert.'); 
      }
    });
    
    // Heizungsanlage Partybetrieb
    on({id: "viessmann.0.get.VitoBetriebParty", change: "ne"}, function(obj){
      date = new Date();
      if((6 < date.getHours()) && (date.getHours() < 23)){
        if(obj.state.val === "aus"){
          setState(idSayIt, 'Partybetrieb der Heizungsanlage ausgeschaltet.');
        }
        if(obj.state.val === "an"){
          setState(idSayIt, 'Partybetrieb der Heizungsanlage eingeschaltet.');
        }
      }
    });
    
    // Heizungsanlage Sparbetrieb
    on({id: "viessmann.0.get.VitoBetriebSpar", change: "ne"}, function(obj){
      date = new Date();
      if((6 < date.getHours()) && (date.getHours() < 23)){
        if(obj.state.val === "aus"){
          setState(idSayIt, 'Sparbetrieb der Heizungsanlage ausgeschaltet.');
        }
        if(obj.state.val === "an"){
          setState(idSayIt, 'Sparbetrieb der Heizungsanlage eingeschaltet.');
        }
      }
    });
    

    Nach einem reboot des Raspi bzw. einem Neustart von ioBroker werden jedes Mal die beiden letzten Ansagen "Partybetrieb der Heizungsanlage ausgeschaltet." und "Sparbetrieb der Heizungsanlage ausgeschaltet." auf meinem Tablet ausgegeben, obwohl sich deren Zustand eigentlich gar nicht geändert hat (ist immer aus). Nun ergeben sich zwei Fragen:

    1. Wieso erfolgt nicht auch eine Ansage zur Betriebsart?

    2. Wie kann ich die Ansagen nach einem Neustart vermeiden?

    Gruß,

    Thorsten

    ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Vermutlich startet das Skript bevor der Vitotronic-Adapter seine Initialisierung beendet hat.
      @dtp:

      Wie kann ich die Ansagen nach einem Neustart vermeiden? `
      Vielleicht hilft es, das Skript (mit Hilfe eines separaten Skriptes) zu stoppen und verzögert wieder zu starten. Habe mal getestet und festgestellt, dass stopScript('Scriptname') leider nicht funktioniert. Versuche es mal so:

      var obj = getObject('script.js.Skriptname');
      obj.common.enabled = false;
      setObject('script.js.Skriptname', obj);  // Skript stoppen
      
      setTimeout(function() {
          runScript('Skriptname');
      }, 10000);  // nach 10 s wieder starten
      
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        Anderer Vorschlag: Eine Freigabeverzögerung nach Skriptstart einbauen:

        var idSayIt = "sayit.0.tts.text";
        var date;
        var startDelay = false;
        
        setTimeout(function() {
            startDelay = true;
        }, 10000);
        ...
        
        

        und dann die Abfragen erweitern:

          if((6 < date.getHours()) && (date.getHours() < 23) && startDelay){
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dtp
          schrieb am zuletzt editiert von
          #4

          Hallo paul53,

          vielen Dank für die Hilfe. Doch leider kommen die Ansagen immer noch. Nun entsprechend verzögert. Gibt es keine Möglichkeit, den Neustart von ioBroker abzufragen und dann eine entsprechende if-Abfrage einzufügen?

          Gruß,

          Thorsten

          ioBroker im Docker-Container auf Synology DiskStation DS718+, HomeMatic IP über CCU3, IKEA Dirigera inkl. Matter, Apple Homekit, Amazon Alexa.

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @dtp:

            Gibt es keine Möglichkeit, den Neustart von ioBroker abzufragen und dann eine entsprechende if-Abfrage einzufügen? `
            Genau das passiert mit der zusätzlichen Auswertung von startDelay. Da mit ioBroker-Neustart alle Adapter und somit alle Skripte gestartet werden, wird startDelay erst auf false und nach 10 s auf true gesetzt. Folglich können Wertänderungen der Vitotronic-Datenpunkte innerhalb der ersten 10 s nach ioBroker-Neustart keine Reaktion (sayit) auslösen.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            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

            743

            Online

            32.6k

            Benutzer

            82.2k

            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