Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Nudging - Nur einen Wert in eine Variable für Sayit

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Nudging - Nur einen Wert in eine Variable für Sayit

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      pix last edited by

      Hallo,

      @Fitti:

      var idSayIt = "sayit.0.tts.text"  /*Text to speech*/
      var Temperatursensor = getState("hm-rpc.0.LEQ0099999.1.TEMPERATURE"); /*Garten Terrasse Temperatur und Feuchte:1.TEMPERATURE*/
      var temperatur = Temperatursensor.val.toString();
      var temp_array = [];
      var d = new Date ();
      // Zerlege Wert
      temp_array = temperatur.split(".");
      
      setState (idSayIt, "Es ist jetzt " + d.getHours() + " Uhr und " + d.getMinutes() + "Die Temperatur beträgt " + temp_array[0] + "," + temp_array[1] + " Grad.");
      
      

      Es ist kein Fehler zu finden (abgesehen, von dem fehlenden Semikolon nach der ersten Zeile). Die Zeile var temp_array =[][/i] _kannst du evtl weglassen.

      Was geben denn````
      log(temperatur);
      log(temp_array[1]);

      
      Gruß
      
      Pix_
      1 Reply Last reply Reply Quote 0
      • F
        Fitti last edited by

        interessant - jetzt geht es.

        Vorher sagte aber auch das log "undefined". Den Text hatte ich aus dem log kopiert.

        Dafür bekomme ich kein Log nach 0.00h. Die letzten Einträge sind von 23:59:49 …

        Ein reload brachte auch nichts. 😞

        Was muss man denn machen?

        1 Reply Last reply Reply Quote 0
        • htrecksler
          htrecksler Forum Testing last edited by

          liegt es vielleicht daran, dass es für jeden Tag ein eigenes log gibt?

          1 Reply Last reply Reply Quote 0
          • F
            Fitti last edited by

            Ich frage mich schon die ganze Zeit, wie das mit dem Logging gelöst ist. Ich finde keine Auswahl für ein altes logging , noch eine Stelle, wo man die Größe der Logs einstellen kann.

            Ich hab' gerade eben herausgefunden woran das "undefined" liegt. Der HM Sensor speichert zwar 16.0 als Wert, bei ,0 Zahlen werden diese aber als 16 gespeichert. Somit gibt es kein Split und das Array[1] ist undefined.

            Warum aber die ,0 verschwinden ist mit schleierhaft.

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              das gesamte log findest du auf der banane

              Gesendet von meinem Cynus T7 mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • htrecksler
                htrecksler Forum Testing last edited by

                Bis vor einigen Wochen/Monaten?? gab es nur eine einzige log Datei. Da gab es an der ein oder anderen Stelle Probleme mit der Größe der log-files.

                Bluefox hat das dann so gelöst, das das log immer für die letzten 3 Tage abgespeichert wird.

                Du findest die 3 log-Dateien im Verzeichnis ioBroker/log.

                Ich bin mir nicht ganz sicher, aber im Moment ist das logging (Größe, Anzahl der Logfiles…) (noch) nicht einstellbar.
                305_manadjustments.txt

                1 Reply Last reply Reply Quote 0
                • F
                  Fitti last edited by

                  Danke.

                  Das mit der 0 habe ich jetzt abgefangen.

                  // Einfache Temperaturansage mit SayIt.
                  // Variante 1 mittels splitten der Temperatur, damit die Ansage nicht
                  // "Es sind 18 Punkt 2 Grad " sagt.
                  
                  var idSayIt = "sayit.0.tts.text";  /*Text to speech*/
                  var Temperatursensor = getState("hm-rpc.0.LEQ00xxxxx.1.TEMPERATURE"); /*Temperatursensor:1.TEMPERATURE*/
                  var temperatur = Temperatursensor.val.toString();
                  var temp_array = [];
                  
                  temp_array = temperatur.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.");
                  }
                  setState (idSayIt, "Die Temperatur beträgt " + temp_array[0] + "," + temp_array[1] + " Grad.");
                  
                  
                  // Einfache Temperaturansage mit SayIt.
                  // Variante 2 mittels ersetzen des Punktes in ein Komma, damit die Ausgabe nicht
                  // "Es sind 18 Punkt 2 Grad " sagt.
                  
                  var idSayIt = "sayit.0.tts.text";  /*Text to speech*/
                  var Temperatursensor = getState("hm-rpc.0.LEQ00xxxxx.1.TEMPERATURE"); /*Temperatursensor:1.TEMPERATURE*/
                  var temperatur = Temperatursensor.val.toString();
                  
                  temperatur = temperatur.replace('\.', '\,');
                  
                  setState (idSayIt, "Die Temperatur beträgt " + temperatur + " Grad.");
                  

                  Vielleicht hat ja jemand auch mal das Problem.

                  1 Reply Last reply Reply Quote 0
                  • S
                    skorpil last edited by

                    Ich bin mit dem JS Script noch ein Dummy. Wo wird das hingeschrieben und wie wird es aufgerufen? Danke für Hilfe.

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      @skorpil:

                      Wo wird das hingeschrieben `
                      siehe:

                      http://www.iobroker.net/docu/?page_id=156&lang=de

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • S
                        skorpil last edited by

                        Rainer,

                        Jetzt weiß ich, wie und wo ich Scripte anlege. Fehlt nur noch, wie ich sie aufrufe? Da ich kein Profi bin, verzeih mir meine vlt. dumme Frage. Und danke für die Hilfe.

                        Bernd

                        1 Reply Last reply Reply Quote 0
                        • P
                          pix last edited by

                          @skorpil:

                          Fehlt nur noch, wie ich sie aufrufe? ` eigentlich solltest du sie nicht manuell aufrufen. Sie starten sich selbst beim Speichern. Wenn dann eine, der überwachten Bedingungen eintritt (Schedule, Aktorstatus, etc.), dann wird nach Skript abgearbeitet.

                          Gruß

                          Pix

                          1 Reply Last reply Reply Quote 0
                          • S
                            skorpil last edited by

                            Pix,

                            Ich danke Dir. Bedeutet "eigentlich ",' dass ein Aufruf resp. einAauslösen des Scripts über den Browser zu Testzwecken gar nicht geht? Denn bei CCU.io war das ja möglich…

                            Liebe Grüße

                            Bernd

                            1 Reply Last reply Reply Quote 0
                            • Bluefox
                              Bluefox last edited by

                              @skorpil:

                              Pix,

                              Ich danke Dir. Bedeutet "eigentlich ",' dass ein Aufruf resp. einAauslösen des Scripts über den Browser zu Testzwecken gar nicht geht? Denn bei CCU.io war das ja möglich…

                              Liebe Grüße

                              Bernd `
                              Du rufst dem auf, wenn du denn speicherst.

                              1 Reply Last reply Reply Quote 0
                              • F
                                Fitti last edited by

                                Oder wenn du auf den Reload Button klickst 8-) :
                                578_say_reload.png

                                Fitti

                                1 Reply Last reply Reply Quote 0
                                • S
                                  skorpil last edited by

                                  Danke, Fitti
                                  6305_hm_sv_tuer.png

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    skorpil last edited by

                                    So, erster Test mit dem ersten Script von Fitti auch hier bei mir erfolgreich. Jetzt brauche ich noch Hilfe zum triggern. Kann mir jemand sagen, wie ich in JS programmiere, z. B. : Türe auf (Tür/Fenster Kontakt vorhanden), Durchsage auslösen?

                                    Danke für die Hilfe!

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pix last edited by

                                      @skorpil:

                                      Kann mir jemand sagen, wie ich in JS programmiere, z. B. : Türe auf (Tür/Fenster Kontakt vorhanden), Durchsage auslösen? `

                                      var status_zustand_tfk = ['geschlossen','geöffnet'];
                                      on("hm-rpc.0.SERIENNUNMERTFK.1.STATE"/*Fenster links Wohnzimmer.STATE*/, function (data) {
                                          var status_geraet = 'Wohnzimmer Fenster links';         // Klartextname des Gerätes // alternativ: status_geraet = data.name;
                                          var ansage = status_geraet + ' ' + status_zustand_tfk[data.newState.val]
                                          log(ansage, 'info');
                                          setState("sayit.0.tts.text"/*Text to speech*/, ansage);
                                      });
                                      
                                      

                                      Seriennummer und Name des Gerätes noch anpassen. Sayit-Adapter sollte natürlich installiert und aktiviert sein.

                                      Gruß,

                                      Pix

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        skorpil last edited by

                                        Wow! Danke!

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          steinwedel last edited by

                                          Die Lösung Deiner Frage findest DU in der Javascript-Doku unter "subscribe" bzw. "on".

                                          Trotzdem hier ein Beispiel, welches eine Nachricht ausgibt (nicht über sayit sondern über pushover):

                                          subscribe({id: "hm-rpc.0.KEQ0955279.1.STATE"/*Wohungstür Kontakt*/ , val: true}, function (obj) {
                                                  sendTo("pushover", "Wohnungstür geöffnet");
                                          });
                                          
                                          

                                          Gruß Gerhard

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            skorpil last edited by

                                            Vielleicht nerve ich ja das Forum, aber…

                                            Ich möchte mit JS Script eine homematic Variable ansprechen resp. verändern. Die device finde ich. Aber wo verstecken sich die ganzen homematic Variablen, die ich in der CCU gesetzt habe?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            906
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            60
                                            6331
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo