Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Script mit script stoppen

    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

    [gelöst]Script mit script stoppen

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

      Hallo und guten Tag erst mal an alle

      Nun meine frage

      wie kann ich in einem javascript ein anderes javascript auf false setzen. also stoppen.

      ich möchte in zwei scripten es so haben das das eine ausgefürt wird und dabei das andere auf false setzt.

      oder noch besser wäre ein script welches bei zustand an, das eine script ausführt ,und das andere deaktiviert ,und anders herrum auch . für alexa besser wenn mann an und aus hat

      Danke

      1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active last edited by

        Schreib mal was Du machen möchtest.

        Klar kann man ein Script auch an und aus schalten, aber ich denke Du willst was ein und aus schalten und hast dafür zwei Scripte ?

        Das geht bestimmt einfacher…

        1 Reply Last reply Reply Quote 0
        • M
          Motsche1 last edited by

          Also ich habe 2 scripte die je einen wert schreiben . und zwar folgende

          Sript 1

          setState('viessmann.0.get.BetriebArtM1', 'ABSCHALT', true /*ACK*/);
          

          script 2

          setState('viessmann.0.get.BetriebArtM1', 'H+WW', true /*ACK*/);
          

          bin halt mit java nicht vertraut. denke schon es geht einfacher. mit nur einem script, das bei an oder aus das jeweilige als wert setzt.

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

            1.) Für Skripte und deren Steuerung gibnt es den Datenpunkte unter "javascript.0.scriptEnabled", die man dann

            anschalten (true) oder ausschalten kann (false).

            2.) Das ACK=true brauchst Du nicht. Das sorgt unter Umnständen nur dafür, daß der Datenpunkt zwar aktualisiert wird,

            aber der Adapter nix tut, weil ack=true bedeutet, daß der Befehl vom Gerät kommt. So in der Art. Viele Adapter reagieren

            dann nicht drauf, da sie ja selbst die Geräte verwalten. Die reagieren, dann nur auf ack=false (defauld, wenn man es wegläßt).

            Kann aber an dem Adapter liegen, weil im State ein get state .. evtl. holt der sich ja eine Betriebsart … ?

            3.) Mit irgendeinem Event willst du ja die BetriebsArtM1 umstellen, dafür haste einen State, z.B. "Heizung.Betriebsart.Winter",

            evtl. im Javascript-Adapter oder sonstwo.

            Dann würde das Skript so aussehen:

            on ('javascript.0.Heizung.Betriebsart.Winter'), function(obj) {
            	if (obj.state.val) {
            		setState('viessmann.0.get.BetriebArtM1', 'ABSCHALT');
            	} else {
            		setState('viessmann.0.get.BetriebArtM1', 'H+WW');
            	}
            });
            
            

            MfG Markus

            1 Reply Last reply Reply Quote 0
            • M
              Motsche1 last edited by

              Also ich will eigentlich nur ,das wenn ich zb sage …. alexa schalte heizung an dann soll bei dem Datenpunkt setBetriebsArtM1 der wert "H+WW" eingetragen werden und bei heizung aus eben "ABSCHALT"

              PS.

              das script hat so nen fehler

              meldung ist

              javascript.0 2018-09-29 16:51:31.812 error at Object.createScript (vm.js:80:10)

              javascript.0 2018-09-29 16:51:31.812 error SyntaxError: Unexpected token )

              javascript.0 2018-09-29 16:51:31.812 error ^

              javascript.0 2018-09-29 16:51:31.812 error });

              javascript.0 2018-09-29 16:51:31.812 error at script.js.common.Skript2:7

              javascript.0 2018-09-29 16:51:31.812 error script.js.common.Skript2 compile failed:

              javascript.0 2018-09-29 16:48:26.474 error at Object.createScript (vm.js:80:10)

              javascript.0 2018-09-29 16:48:26.474 error SyntaxError: Unexpected token )

              javascript.0 2018-09-29 16:48:26.474 error ^

              javascript.0 2018-09-29 16:48:26.473 error });

              javascript.0 2018-09-29 16:48:26.473 error at script.js.common.Skript2:7

              javascript.0 2018-09-29 16:48:26.473 error script.js.common.Skript2 compile failed:

              1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active last edited by

                Kannst Du das auch von Hand in die Datenpunkte eintagen und den Befehl absetzen / schalten ?

                Ist das Text in dem Datenpunkt, oder kommt der Wert aus einer Liste ?

                Mach mal einen Screenshot vom Datenpunkt bei RAW.

                Das Script selbst machen wir dann gemeinsam…

                1 Reply Last reply Reply Quote 0
                • M
                  Motsche1 last edited by

                  wert kann von hand eingetragen werden

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

                    Dann erweitern wir das Skript mal, um einen Datenpunkt.

                    createState('alexa.Heizung', {type: 'boolean', def: false, read: true, write: true, role: 'switch'})
                    
                    on ('javascript.0.alexa.Heizung', function(obj) {
                    	if (obj.state.val) {
                    	        // case: true
                    		setState('viessmann.0.get.BetriebArtM1', 'ABSCHALT');
                    	} else {
                    	        // case: false
                    		setState('viessmann.0.get.BetriebArtM1', 'H+WW');
                    	}
                    });
                    
                    

                    Was jetzt noch fehlt ist die Anbindung an Alexa. Dafür müßte du den Datenpunkt

                    "javascript.0.alexa.Heizung" in den Cloud-Adapter einbinden mit Name "Heizung" und ihm den Status SWITCH geben.

                    Dann in die Alexa-App gehen und nach neuen Geräten suchen lassen, dann taucht der neue Datenpunkt dort auf.

                    Dann kannst Du sagen "Alexa, schalte Heizung an/aus" und das skript läuft

                    Sorry für den Compile-Fehler .. da ist mir bei on ein ) rein geraten.

                    MfG Markus

                    1 Reply Last reply Reply Quote 0
                    • M
                      Motsche1 last edited by

                      {
                        "from": "system.adapter.viessmann.0",
                        "ts": 1538223413728,
                        "common": {
                          "name": "BetriebArtM1",
                          "desc": "Setze Betriebsart M1"
                        },
                        "native": {},
                        "acl": {
                          "object": 1638,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator",
                          "state": 1638
                        },
                        "_id": "viessmann.0.set.BetriebArtM1",
                        "type": "state"
                      }
                      
                      1 Reply Last reply Reply Quote 0
                      • M
                        Motsche1 last edited by

                        script startet nicht da fehler

                        j````
                        avascript.0 2018-09-29 16:56:04.577 error at Object.createScript (vm.js:80:10)
                        javascript.0 2018-09-29 16:56:04.577 error SyntaxError: Unexpected token )
                        javascript.0 2018-09-29 16:56:04.577 error ^
                        javascript.0 2018-09-29 16:56:04.576 error });
                        javascript.0 2018-09-29 16:56:04.576 error at script.js.common.Skript2:11
                        javascript.0 2018-09-29 16:56:04.576 error script.js.common.Skript2 compile failed:

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

                          Hab es oben nochmal korrigiert; da haste das falsche Skript schneller gelesen .. 🙂

                          Mußte nach dem ersten starten nochmal neu starten, da der on-Trigger schneller

                          erzeugt wird, als der State eingelesen werden kann. Das kolliert dann

                          an der Stelle.

                          Daher haben viele ein eigens Skript, nur um eigene States im Adapter zu erzeugen;

                          oder legen eigene States manuell irgendwo an.

                          MfG Markus

                          1 Reply Last reply Reply Quote 0
                          • M
                            Motsche1 last edited by

                            danke dir sehr

                            wenn ich den wert bei set.BetriebArtM1

                            muss ich das nur ändern oder?

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

                              @Motsche1:

                              "_id": "viessmann.0.set.BetriebArtM1",
                              ```` `  
                              

                              Falsche ID im Skript verwendet !

                              createState('alexa.Heizung', false, {type: 'boolean', role: 'switch'});
                              
                              on('javascript.0.alexa.Heizung', function(obj) {
                              	if (obj.state.val) setState('viessmann.0.set.BetriebArtM1', 'H+WW');
                              	else setState('viessmann.0.set.BetriebArtM1', 'ABSCHALT');
                              });
                              
                              1 Reply Last reply Reply Quote 0
                              • modmax
                                modmax last edited by

                                @paul53

                                Kürzer geht immer, was? .. 🙂

                                Ich bin ein Fan von { und } … da weiß man wo es anfägt und aufhört ...

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

                                  @modmax:

                                  … da weiß man wo es anfägt und aufhört ... `
                                  Das weiß man bei einer Einzelanweisung auch.
                                  @modmax:

                                  Ich bin ein Fan von { und } `
                                  Das kannst / sollst Du auch bleiben 8-)

                                  Allerdings habe ich auch die Logik umgedreht: Bei "Heizung" = true schaltet sie ein.

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

                                    Macht auch mehr Sinn sie bei true anzuschalten … 🙂

                                    Darauf hatte ich nicht geachtet geb ich zu .. hab keine Viessmann-Heizung,

                                    nur ne 12 Jahre alte .. da war noch nix mit Smart und so ...

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      Motsche1 last edited by

                                      Meine ist auch recht alt. So 2001 oder so. Aber das zubehör machts halt. 😄

                                      Zur info….es klappt perfekt. Danke nochmal

                                      1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active last edited by

                                        Schön das Dir schon geholfen wurde.

                                        (ich habe unerwartet Besuch bekommen und musste dann aufhören.)

                                        PS:

                                        Den Smartnamen für Alexa bzw. den CloudAdapter baue ich mir bei eigenen Datenpunkten immer gleich mit ein.

                                        Hier z.B. für meinen Rasenmäher

                                        ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201809 ... b2ab16.jpg">https://uploads.tapatalk-cdn.com/20180929/a8c50c94b00d4ef4411032e45cb2ab16.jpg</link_text>" />

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

                                          @Motsche1:

                                          es klappt perfekt. `
                                          Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          980
                                          Online

                                          31.7k
                                          Users

                                          79.9k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          19
                                          1694
                                          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