Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. JavaScript für Sayit Adapter

    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

    JavaScript für Sayit Adapter

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

      Hallo zusammen,
      ich bräuchte mal Hilfe bei JavaScript (Wenn das Powershell wäre, hätte ich keine Probleme).😢

      Also, ich verwende den Sayit Adapter in Verbindung mit dem Alarm Adapter. Das funktioniert sehr gut.
      Jetzt habe ich versucht mal ein JavaScript zu schreiben, das dann losplappert, wenn die Garage auf oder zu geht. Leider kommt da kein Ton raus. Auch der Datenpunkt "sayit.0.tts.text" wird nicht befeuert. Mit Blockly hatte ich auch kein Erfolg.
      Das Anfängerscript:

      
      var idSayIt  = "sayit.0.tts.text";
      var idGarage = "0_userdata.0.Haus.Garantor";
      on({id: "0_userdata.0.Haus.Garantor"  , change: "any"}, function (obj) {
              var offen = "0";                                                     
              var zu = "1";                                                      
              if( "offen" ){
               setState (idSayIt, "100;Achtung Warnung! Garagentor ist offen " /*media.tts.text*/);
               }
              else if ( "zu" ){
              setState (idSayIt, "100;Achtung Warnung! Garagentor ist zu " /*media.tts.text*/);
              
              }
              
          });
           
      

      Da kennt sich doch bestimmt jemand aus. Für Hilfe wäre ich dankbar.
      Grüße

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Maxtor62 last edited by paul53

        @maxtor62
        Die Garagentor-ID lautet tatsächlich "0_userdata.0.Haus.Garantor"?
        Dann sollte es so funktionieren:

        const idSayIt  = "sayit.0.tts.text";
        const idGarage = "0_userdata.0.Haus.Garantor";
        
        on(idGarage, function (dp) {
            // 0 = "offen", 1 = "zu"
            setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "zu" : "offen");
        });
        
        M 1 Reply Last reply Reply Quote 0
        • M
          Maxtor62 @paul53 last edited by

          @paul53

          Hey, erst mal vielen Dank für Deine Hilfe. Natürlich hatte ich da einen Tippfehler drin.

          Na endlich quatscht das Teil mal mit mir, super. Jetzt kommt bei state 1 oder 0 immer "zu"

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Maxtor62 last edited by paul53

            @maxtor62 sagte: Jetzt kommt bei state 1 oder 0 immer "zu"

            Sind das Zahlen oder Strings?
            Skript zeigen!

            M 2 Replies Last reply Reply Quote 0
            • M
              Maxtor62 @paul53 last edited by Maxtor62

              @paul53

              das ist der Datenpunkt, der entweder 1 oder 0 ist.

              {
                "common": {
                  "name": "Garagentor",
                  "desc": "Manuell erzeugt",
                  "role": "value",
                  "type": "number",
                  "read": true,
                  "write": true,
                  "def": ""
                },
                "type": "state",
                "native": {},
                "_id": "0_userdata.0.Haus.Garagentor",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.stefan",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1693219286201
              }
              

              und das ist das Script

              const idSayIt  = "sayit.0.tts.text";
              const idGarage = "0_userdata.0.Haus.Garagentor";
               
              on(idGarage, function (dp) {
                  // 0 = "offen", 1 = "zu"
                  setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "Garagentor ist zu" : "Garagentor ist offen");
              });
                   
              
              

              Ich hab mal Testweise das Script für eien anderen Datenpunkt genommen. Der ist "true oder "false"

              const idSayIt  = "sayit.0.tts.text";
              const idFenster= "zigbee.0.00158d0008a6e44c.opened";
               
              on(idFenster, function (dp) {
                  // true = "offen", false = "zu"
                  setState (idSayIt, "100;Achtung Warnung! Küchenfenster ist " + dp.state.val ? "Küchenfenster ist zu" : "Küchenfenster ist offen");
              });
              

              Kommt auch immer "Das Küchenfenster ist zu"

              paul53 1 Reply Last reply Reply Quote 0
              • M
                Maxtor62 @paul53 last edited by

                @paul53
                jetzt funktioniert es. Danke Dir.

                const idSayIt  = "sayit.0.tts.text";
                const idFenster= "zigbee.0.00158d0008a6e44c.opened";
                 
                on(idFenster, function (dp) {
                    // true = "offen", false = "zu"
                    setState (idSayIt,  + dp.state.val ? "Küchenfenster ist offen" : "Küchenfenster ist zu");
                });
                
                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Maxtor62 last edited by paul53

                  @maxtor62 sagte: Kommt auch immer "Das Küchenfenster ist zu"

                  Hast recht. Setze eine Klammer:

                  const idSayIt  = "sayit.0.tts.text";
                  const idGarage = "0_userdata.0.Haus.Garagentor";
                   
                  on(idGarage, function (dp) {
                      // 0 = "offen", 1 = "zu"
                      setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + (dp.state.val ? "zu" : "offen"));
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  881
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  199
                  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