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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Sayit einbinden in vorhandenes Script

NEWS

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

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

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

Sayit einbinden in vorhandenes Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 975 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.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    schrieb am zuletzt editiert von
    #1

    Habe hier ein Script um den CO2 Gehalt abzufragen, jetzt möchte ich gerne mit dem Sayit Adapter über Sonos auch eine Ansage einbinden.

    Das funktioniert auch soweit, aber die Ansage kommt immer, wenn der Wert aktualisiert wird.

    Wie muss ich das Script abändern, damit die Ansage nur kommt, wenn der Wert über/unter 1000 ist?

    Als Ansage hätte ich dann gerne "CO2 Gehalt ist im Normalbereich (wenn unter 1000), Wert beträgt XXXX" wenn über 1000 dann "CO2 Gehalt ist zu hoch, Wert beträgt XXXX" und wie kann ich bei der Variable "wert" im Sayit Ausdruck noch die Lautstärke mitgeben?

    var wert = getState("hm-rega.0.1968").val
    var idSayIt  = "sayit.0.tts.text";
    createState('co2Textfarbe', "black"); // Objekt in javascript.0\. für die Textfarbe
    
    on('hm-rega.0.1968', function (obj) {
     obj.newState.val = parseInt(obj.newState.val, 10);
     log('hm-rega.0.1968: ' + obj.newState.val);
     if (obj.newState.val <= 1000) {
          setState("co2Textfarbe","green", true);
          setState (idSayIt, wert); 
         }    
        else if (obj.newState.val >= 1000 && obj.newState.val <=1300) {
          setState("co2Textfarbe","orange", true);
          setState (idSayIt, wert);
       }
          else if (obj.newState.val >= 1300) {
            setState("co2Textfarbe","red", true); 
            setState (idSayIt, wert);
        }
    });
    

    Gruß Frank

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Halo coyote,
      @coyote:

      wie kann ich bei der Variable "wert" im Sayit Ausdruck noch die Lautstärke mitgeben? `

      Das geht so
      ~~@[url=https://github.com/ioBroker/ioBroker.sayit/blob/master/README.md:~~

      ~~https://github.com/ioBroker/ioBroker.sayit/blob/master/README.md"]~~ou can specify the volume of announcement in percent from current or given volume (not from maximal). E.g. if command is de;75;Gutes Wetterand "announce volume" is 50%, the announce will be played with volume 38% from 100% possible. `

      @coyote:

      Wie muss ich das Script abändern, damit die Ansage nur kommt, wenn der Wert über/unter 1000 ist? `
      Homematic Sensoren senden ihren aktuellen Wert alle paar Minuten (manche alle paar Sekunden). Du bekommst bei jeder Sendung einen neuen Wert, also immer weider eine neue Sayit-Ausgabe. Auch wenn, der Wert unter 1000 ist. Sobald er unter diese Grenze fällt ist die Bedingung wahr und es wird bei jeder Aktualisierung angesagt. Das ist nicht gewünscht.

      Besser:

      Da du schon die Textfarbe für bestimmte Wertbereiche festlegst, kannst du diese Variable gleich für das Triggern der Sprachausgabe nutzen.

      Wenn sich co2Textfarbe ändert (also nur bei Über/Unterschreitung der definierten Grenze), dann gib den aktuellen Wert aus (und die Farbe/bzw zB "Normalbereich")

      on('co2Textfarbe', function (obj) {
          if (obj.newState.val ==="green") {
               // alles in Ordnung
               setState (idSayIt, "Alles in Ordnung, der CO2 Gehalt liegt bei " + getState('hm-rega.0.1968').val; 
          } else if (obj.newState.val ==="orange") {
               // bedenklich
               setState (idSayIt, "80;Vorsicht, der CO2 Gehalt liegt bei " + getState('hm-rega.0.1968').val; 
          } else if (obj.newState.val ==="red") {
               // kritisch
               setState (idSayIt, "100;Achtung Warnung! Der CO2 Gehalt liegt bei " + getState('hm-rega.0.1968').val; 
          }
      
      });
      
      

      Und wofür ist das "true" am Ende? Das kannst du weglassen. Neuer State der Variable ist "Farbe", nicht true.

      
            setState("co2Textfarbe","orange", true);
      
              setState("co2Textfarbe","red", true); 
      
      

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • coyoteC Offline
        coyoteC Offline
        coyote
        Most Active
        schrieb am zuletzt editiert von
        #3

        Hi Pix,

        vielen Dank schon mal.

        Klar, das "true" ist natürlich nicht nötig, ist mir gar nicht aufgefallen. Das Script hatte mir Bluefox mal zusammengebaut, warum da "true" mit dabei war weiß ich jetzt auch nicht.

        Ok, das hier > de;75;Gutes Wetterand wusste ich schon, nur wusste ich nicht, wie ich das mit der Variable einbaue.

        Hast du mir ja jetzt gezeigt, danke.

        So:
        > "80;Vorsicht, der CO2 Gehalt liegt bei " + getState('hm-rega.0.1968').val

        Man, man da hätte ich auch selbst drauf kommen können mit den Farbwerten… :roll:

        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

        294

        Online

        32.4k

        Benutzer

        81.4k

        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