Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. NodeRed Scriptstart via Trigger funzt net

NEWS

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    895

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.5k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    5.8k

NodeRed Scriptstart via Trigger funzt net

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 1 Kommentatoren 2.2k 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.
  • G Offline
    G Offline
    galferiz
    schrieb am zuletzt editiert von
    #1

    Hi Leute,

    Ich hatte das Problem schonmal hier (viewtopic.php?f=21&t=16003) gepostet, allerdings ohne grosses Feedback.

    Es passt hier, denk ich, besser rein.

    Kann sich einer das Verhalten erklären?

    1935_s5.png
    Wenn ich den State (bei Datenpunkt) manuell ändere auf "true", läuft das Script und SayIt gibt den Text aus wie gewünscht.

    Wenn ich den Status über Alexa ändere, sagt Alexe zwar das "Status" = "an", der Zeitstempel wird aktualisiert,

    aber er regisiert den State-change nicht im Script, obwohl er den Datenpunkt auf true setzt?!

    Hier mal paar NodeRed Infos.

    (Ich schlate meine HM Lichter im Haus genauso und das geht problemlos.
    1935_s1.png
    1935_s7.png
    1935_s6.png
    1935_s2.png
    1935_s3.png
    1935_s4.png

    Hier der Scriptcode:

    var idSayIt = "sayit.0.tts.text";               // Hier die entsprechende SayIt Text ID
    var trigger = "javascript.0.ALEXA.TempData";    //Objekte auf daß, das Skrift auslöst
    var lastSay = null;
    
    // ansagetext, sind die TempDaten
    
    // Quellen
    var idTemperatursensor = "hm-rpc.0.NEQ1382432.1.TEMPERATURE"/*HM-WDS10-TH-O NEQ1382432:1.TEMPERATURE*/
    var idTemperatursensor2 = "hm-rpc.0.NEQ1523315.1.TEMPERATURE"/*KME - EG-Wohnzimmer.TEMPERATURE*/
    
    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();
        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 ermitteleAnsageTemperatur2 () {
        // 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(idTemperatursensor2).val;
        var temp_string = temperatursensor.toString();
        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]
        };
    }
    
    // TempDaten melden
    
    var ansagetext = "Temperatur Garten " + ermitteleAnsageTemperatur().Ganzzahl + "," + ermitteleAnsageTemperatur().Nachkommazahl + " Grad." 
                    + " Temperatur Wohnbereich " + ermitteleAnsageTemperatur2().Ganzzahl + "," + ermitteleAnsageTemperatur2().Nachkommazahl + " Grad." ;
    
    [color]subscribe({id:"javascript.0.ALEXA.TempData", val: true}, function (obj) {
             log('DatenTrigger registriert');
             if (!lastSay || ((new Date()).getTime() - lastSay)) {
                      lastSay = (new Date()).getTime();
                      setState (idSayIt, "de;90;" + ansagetext);  
             }
             // Nach 1 Sek
               setTimeout(function () {
                          setState(trigger, false);
               }, 1000);
            });
    [/color]
    
    

    Der Rote Code soll den Trigger erkennen und auslösen.

    Kann mir einer Sagen wo das Problem liegen könnte, bzw. in welcher Richtung ich noch testen könnte?!

    Dank Euch

    Gruß

    Thomas

    Nach Weihnachten ist vor Weihnachten

    1 Antwort Letzte Antwort
    0
    • G Offline
      G Offline
      galferiz
      schrieb am zuletzt editiert von
      #2

      Ok Leute.

      Hab das Kleingedruckte nicht umgesetzt.

      Für alle Nachbauer:

      1935_s6.png

      In der "Replace with" Zeile, hab ich den Wert auf "string" gelassen. Das hat gereicht um nicht zu reagieren.

      Hier müsst Ihr den Wert in der Tabelle auf "Boolean" ändern.

      Problem gelöst :lol:

      Nach Weihnachten ist vor Weihnachten

      1 Antwort Letzte Antwort
      0

      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

      Registrieren Anmelden
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      293

      Online

      33.0k

      Benutzer

      83.5k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2026
      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