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. Script läuft auf einer iobroker Installation, auf der anderen NICHT???

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Script läuft auf einer iobroker Installation, auf der anderen NICHT???

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
13 Beiträge 3 Kommentatoren 561 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.
  • S Offline
    S Offline
    skorpil
    schrieb am zuletzt editiert von
    #3

    Dutchman,

    gute Frage! aber da ich nur Script Laie bin, kann ich sie nicht gut beantworten. Ich poste hier mal das Script. Vielleicht schaust Du mal drauf? Danke!

    `// ##################################################################
    
    //                  Buero Geburstage u. Muell
    
    // ##################################################################
    
    // ##################################################################
    
    //                      Definitionen
    
    // ##################################################################
    
    // Definition Sayit für "2" = Buero;
    var idSayIt =            "sayit.2.tts.text";
    var lautstaerke = 40;
    
    // Quellen
    var idWetter =           "hm-rega.0.29954";
    var idTemperatursensor = "hm-rpc.0.LEQ0177463.1.TEMPERATURE"; /*Temperatursensor:1.TEMPERATURE*/
    var idGeburtstage =      "javascript.0.Kalenderereignisse.heute";
    var idMuell =            "javascript.0.Muellereignisse.heute";
    
    function ermitteleAnsagedatum () {
        //Wochentag ermitteln
        var d = new Date ();
        var w = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
        var wochentag = w[d.getDay()]; 
    
        //Tagesdatum ermitteln
        var tag = d.getDate();
    
        //Monat ermitteln
        var month = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
        var monat = month[d.getMonth()];
    
        //Jahr ermitteln
        var jahr = d.getFullYear();
    
        //Stunde ermitteln
        var stunde = d.getHours();
    
        //Minute ermitteln
        var minute = d.getMinutes();
    
        return { // zurückgeben
            'Jahr'      : jahr,
            'Monat'     : monat,
            'Tag'       : tag,
            'Wochentag' : wochentag,
            'Stunde'    : stunde,
            'Minute'    : minute
        };
    }
    
    function ermitteleWetter () { // Wetterbedingungen
        var wetterdaten = getState(idWetter).val;
        log('Wetter: ' + wetterdaten);
        return(wetterdaten);
    }
    
    function ermitteleAnsageTemperatur () {
        // Die Außentemperatur ist xx. Das Wetter heute 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(idTemperatursensor).val;
        var temp_string = temperatursensor.toString();
        log('Temp  ' + temp_string);
        var temp_array = [];
        temp_array = temp_string.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.");
        }
        return{
            'Ganzzahl'      : temp_array[0],
            'Nachkommazahl' : temp_array[1]
        };
    }
    
    function ermitteleGeburtstage () {
        var geburtstage = getState(idGeburtstage).val;
     log(geburtstage);
        return (geburtstage);
    }
    
    function ermitteleMuell () {
        var muell = getState(idMuell).val;
        log(muell);
        return (muell);
    }
    
    // ##################################################################
    //
    //                  Ansagetext zusammenstellen
    //
    // ##################################################################
    
        var ansagetext = "Guten Morgen, heute ist " + ermitteleAnsagedatum().Wochentag + " der " + ermitteleAnsagedatum().Tag + "te " + ermitteleAnsagedatum().Monat + ' ' + ermitteleAnsagedatum().Jahr 
                + ". Es ist" + ermitteleAnsagedatum().Stunde + "  Uhr und " + ermitteleAnsagedatum().Minute + "  Minuten." 
                + " Die Aussentemperatur beträgt " + ermitteleAnsageTemperatur().Ganzzahl + "," + ermitteleAnsageTemperatur().Nachkommazahl + " Grad." 
                + " Wetter Bedingungen," + ermitteleWetter() +" .";
    
    // ####################################################
    // Wenn Geburtstag dann mit ansagen
    // ####################################################
    
       var geburtstage2 = getState(idGeburtstage).val;
        if (geburtstage2.length > 2) { // wenn der Inhalt des Objektes "idGeburtstage" weniger als 2 Zeichen lang ist (also praktisch leer), dann ...
            ansagetext = ansagetext + "Heute haben Geburtstag, " + ermitteleGeburtstage() +" .";
    
          }
    
    // ####################################################
    // Wenn Müll dann mit ansagen
    // ####################################################
    
       var muell2 = getState(idMuell).val;
        if (muell2.length > 2) { // wenn der Inhalt des Objektes "idMuell" weniger als 2 Zeichen lang ist (also praktisch leer), dann ...
             ansagetext = ansagetext + "  Achtung, heute ist Abholung " + ermitteleMuell() +" .";
        }
    
    // ####################################################
    //                  ANSAGE
    // ####################################################
    
       setState(idSayIt, lautstaerke + ";" + ansagetext);  // hier also ("40;Guten Morgen ...")
    
    /* #######################################################
        Kalenderevent auswerten ----> nur Geburtstage
        sucht im iCal Adapter nach events (heute)
        auf Anfrage von Skorpil im Forum erstellt.
        http://forum.iobroker.de/viewtopic.php?f=21&t=2347&p=20627&sid=524f9dda2f313d3cbb183941df61fc38#p20627
    
        27.02.2016 erstellt von Pix
        02.03.2016 Anpassung und Aufbereitung für Sprachausgabe
        21.07.2016 Umbau auf Müll  Kalender
        ######################################################*/
    
    //Datum als String ermitteln;
    function ermitteleDatum() {
        var d= new Date();
    
        //Tagesdatum ermitteln
            var day = new Array("00","01","02","03","04","05","06","07","06","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
            var t = day[d.getDate().toString()];
    
        //Monat ermitteln
            var month = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
            var m = month[d.getMonth().toString()];
    
        //Jahr ermitteln
            var j = d.getFullYear().toString();
    
        var datum= t+"."+m+"."+j+" ";
        //log("datum:   " + datum);
        return (datum);
    }
    
    createState('Kalenderereignisse.heute', '', {
        name: 'Events von heute',
        type: 'string'
    });
    
    var idListe =  'Kalenderereignisse.heute';
    
    function pruefeKalender() {
        var inhalt = getState('ical.0.data.table').val;
        var heute = ermitteleDatum();
        try{
            var ereignisse = JSON.stringify(inhalt, null, 2); // Ausgabe als String
    log(ereignisse);
            var ereignisheute = '', // Liste (kommasepariert)
                ereignisheute_zeilen = ''; // Liste (mit Zeilenumbruch, zB für Anzeige in VIS)
            for(var i = 0; i <inhalt.length; i++)/{/alle/events/durchgehen/if/(/(inhalt[i].date.indexof(heute)/!="-1)" ||/(inhalt[i].date.indexof('heute')/)/strings/datum/oder/relatives/(nicht/nicht)/gefunden/var/ereignis="inhalt[i].event;" komma/im/namen/ersetzen="">0) ? ', ' : '';
                    ereignisheute = ereignisheute + komma + ereignis;
                    ereignisheute = ereignisheute.replace('Geburtstag von ', ''); // "Geburtstag von " löschen
                } 
            }
            // Aufbereitung für die Ansage (falls vorhanden, wird letztes Komma durch und ersetzt)
            var lastkomma = ereignisheute.lastIndexOf(','); // letztes Komma in der Reihe
            if (lastkomma != -1) {
               var vorn = ereignisheute.slice(0,lastkomma-1);
               var hinten = ereignisheute.slice(lastkomma+1, ereignisheute.length);
               ereignisheute = vorn + ' und' + hinten;
            }
            // Ende Aufbereitung für die Ansage
    
            setState(idListe, ereignisheute);
            log('Geburtstage: ' + ereignisheute);
        } catch (fehler_try) {
            log('Fehler beim Kalenderevent einlesen ' + fehler_try);
        }
    }
    
    // #################################################################
    
    //  neuer Teil für Müllkalender
    
    // #################################################################
    
    createState('Muellereignisse.heute', '', {
        name: 'Müll-Events von heute',
        type: 'string'
    });
    
    var idListe2 = "Muellereignisse.heute";
    
    function pruefeKalender2() {
        var inhalt2 = getState('ical.1.data.table').val;
        var heute2 = ermitteleDatum();
        try{
            var ereignisse2 = JSON.stringify(inhalt2, null, 2); // Ausgabe als String
    log(ereignisse2);
            var ereignisheute2 = '', // Liste (kommasepariert)
                ereignisheute2_zeilen = ''; // Liste (mit Zeilenumbruch, zB für Anzeige in VIS)
            for(var i = 0; i <inhalt2.length; i++)/{/alle/events/durchgehen/if/(/(inhalt2[i].date.indexof(heute2)/!="-1)" ||/(inhalt2[i].date.indexof('heute')/)/strings/datum/oder/relatives/(nicht/nicht)/gefunden/var/ereignis2="inhalt2[i].event;" komma/im/namen/ersetzen="">0) ? ', ' : '';
                    ereignisheute2 = ereignisheute2 + komma + ereignis2;
                } 
            }
            // Aufbereitung für die Ansage (falls vorhanden, wird letztes Komma durch und ersetzt)
            var lastkomma = ereignisheute2.lastIndexOf(','); // letztes Komma in der Reihe
            if (lastkomma != -1) {
               var vorn = ereignisheute2.slice(0,lastkomma-1);
               var hinten = ereignisheute2.slice(lastkomma+1, ereignisheute2.length);
               ereignisheute2 = vorn + ' und' + hinten;
            }
            // Ende Aufbereitung für die Ansage
    
            setState(idListe2, ereignisheute2);
            log('Müll: ' + ereignisheute2);
        } catch (fehler_try) {
            log('Fehler beim Müll-Kalenderevent einlesen ' + fehler_try);
        }
    }
    
    // bei Aktualisierung des Kalenders
    on ({id:'ical.0.events.Geburtstag', change: 'any'}, function(data) {
        pruefeKalender();
    });
    on ({id:/\ical.1.events.$/, change: 'any'}, function(data) { // jedes Objekt im ical.1
        pruefeKalender2();
    });
    
    //bei Skriptstart
    pruefeKalender();
    pruefeKalender2();</inhalt2.length;></inhalt.length;>`[/i][/i][/i][/i][/i][/i]
    
    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #4

      Hmm das script erstellt dieses Objekt eigentlich ist es denn nicht im Baum vorhanden ?

      Dieser Teil hier führt das aus:

       createState('Muellereignisse.heute', '', {
          name: 'Müll-Events von heute',
          type: 'string'
      });
      

      System Mal neu gestartet?

      Sent from my iPhone using Tapatalk

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        skorpil
        schrieb am zuletzt editiert von
        #5

        Vielen Dank. Nein, noch nicht neu gestartet. Versuche ich gleich noch mal. Merkwürdig ist, dass alle anderen Scripte laufen…

        Ob denn in den Versionen irgendein Befehl geändert wurde, der jetzt nicht mehr funktioniert?

        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #6

          @skorpil:

          Ob denn in den Versionen irgendein Befehl geändert wurde, der jetzt nicht mehr funktioniert? `

          Ehm nö, getState und setState waren und sind eigentlich schon immer so.

          Wie gesagt das Script sollte diesen Datenpunkt erstellen und danach ist der Fehler auch Weck

          Sent from my iPhone using Tapatalk

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

            Kommt der Fehler bei Neustart des Skriptes wieder ?

            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
            • S Offline
              S Offline
              skorpil
              schrieb am zuletzt editiert von
              #8

              Paul53, ja, er kommt immer wieder

              Dutchman, er ist aber nicht weg[emoji23]

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

                Der Datenpunkt "javascript.0.Muellereignisse.heute" ist vorhanden (Reiter "Objekte") und hat einen Wert ?

                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
                • S Offline
                  S Offline
                  skorpil
                  schrieb am zuletzt editiert von
                  #10

                  paul53,

                  ich bin ja leider ein Script Laie. Dutchman hat die Frage ja auch gestellt. Siehe oben. Und meinte, das Script hatte den Punkt erstellt.

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    skorpil
                    schrieb am zuletzt editiert von
                    #11

                    So, Neustart durchgeführt, gleiches Verhalten! Der Datenplunkt „javascript.0.Muellereignisse.heute“ findet sich NICHT bei den Objekten…

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

                      @skorpil:

                      Der Datenplunkt „javascript.0.Muellereignisse.heute“ findet sich NICHT bei den Objekten… `
                      Du verwendest nur die eine Javascript-Instanz 0 und das Skript läuft unter dieser Instanz ?

                      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
                      • S Offline
                        S Offline
                        skorpil
                        schrieb am zuletzt editiert von
                        #13

                        Ja!

                        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

                        824

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        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