Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Daten aus einer Website mit Javascript

    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

    Daten aus einer Website mit Javascript

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

      _was ist mit dem state D_D_2 kann der nicht auch entfallen? Sollwert WWH
      _Wegen des manuellen Regenerationsstart habe ich auch mal etwas gegoogelt und im lox wiki was gelesen...kopiere es mal hier rein...Ich würde nämlich auch gerne über meine anwesenheitskontrolle die Regeneration bei unterschreiten eines wertes zusätzlich zur fest eingestellten Zeit über die Abwesenehit triggern.

      Mit dem Befehl "edit=D_B_1>" ist dies möglich jedoch darf dieses Kommando nur ausgelöst werden wenn man eine gültige ID besitzt. (Nur wenn diese ID als Cookie im Browser registriert ist)
      Außerdem hätte ich probiert eine ID jedesmal zu generieren und zwar mit dem selben Syntax wie im Grünbeck Gerät ( parseInt( Math.random() * ( (9999+1) - 1000 )) )Auch ohne Erfolg (traurig)Hat jemand eine Idee, eine ID vom Gerät anzufordern?

      Wenn dies möglich wäre, hätte man die Möglichkeit eine Regeneration präsenzabhängig zu gestalten.

      1 Reply Last reply Reply Quote 0
      • A
        ArnoD last edited by

        Ok, habe jetzt noch ein paar Fehler korrigiert und States gelöscht die keine Funktion haben.
        Der Fehler "send flag is true" sollte jetzt erledigt sein, aber ich habe noch nicht alle Kombinationen getestet.
        @smartboart : Installateurebene (Code 113), Kundendienstebene (Code 290) steht in der Bedienungsanleitung. 😉

        Die manuelle Regeneration ist wohl nicht so einfach über die Schnittstelle möglich. Ich werde erst mal den programmierbarer Eingang der Anlage nutzen um eine manuelle Regeneration auszulösen.
        Aber ich bleibe dran eine Lösung zu finden.

        S smartboart 2 Replies Last reply Reply Quote 0
        • S
          schmid_no1 @ArnoD last edited by

          @ArnoD Hallo ArnoD wie steuerst die Schnittstelle an?

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

            der programmierbare Eingang ist eine Hardwareschnittstelle . Die Anlage hat einen Eingang und ausgang potentialfrei. Würde das über ein Relas lösen und das Relais über gpio ansteuern. Das werde ich auch so machen...
            hab gerade gesehen, dass die Uhrzeit Sync schon behoben ist...

            1 Reply Last reply Reply Quote 0
            • smartboart
              smartboart @ArnoD last edited by

              @ArnoD Danke für den Hinweis...Vlt. sollte ich doch mal anfangen Bedienungsanleitungen zu lesen. 🙂

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

                @smartboart würde dies auch über ein knx Binäreingang funktionieren?

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

                  Habe leider kein KNX, aber am Eingang kannst du höchstens einen Zustand von der Gruenbeck abholen. z.B die Störmeldung der Gruenbeck weil Potentialfrei. Wenn du was schalten willst brauchst einen Ausgang. Wenn die Knx am Ausgnag einen Potentialfreien Kontakt ( NC oder NO ) zur Verfügung stellt, kannst den nehmen, ansonsten brauchst du ein Relais welches bei aktiven Ausgang anzieht. Dessen Kontakte / potentialfrei legst du dann auf den eingang der Grünbeck.

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

                    xxx fehlerhafter post xxx

                    1 Reply Last reply Reply Quote 0
                    • A
                      ArnoD last edited by

                      Ich habe jetzt bei mir eine manuelle Regeneration auslösen können.
                      Könnt ihr bitte das aktuelle Script einmal testen ob es bei euch auch funktiniert, bin mir nämlich nicht sicher
                      ob meine Anlage nicht die ID von meinem Webbrowser verwendet. 😌

                      1 Reply Last reply Reply Quote 0
                      • A
                        ArnoD last edited by

                        Ich habe die manuelle Regeneration bei mir jetzt drei Mal gestestet und es funktioniert.
                        Warte jetzt noch auf Rückmeldungen, ob es bei euch auch geht, dann wäre der Punkt auch erledigt.
                        Entscheidet ist anscheinend die Reihenfolge beim Senden.
                        Anders als in der Schnittstellenbeschreibung angegeben muss zuerst "edit=D_B_1>1" und dann erst die ID "&id=3369~" gesendet werden.

                        smartboart 1 Reply Last reply Reply Quote 0
                        • smartboart
                          smartboart @ArnoD last edited by smartboart

                          @ArnoD said in Daten aus einer Website mit Javascript:

                          &id=3369

                          Hi, habe es gerade probiert... Habe den State D_B_1 mit 1 gesetzt. Das ist doch richtig oder? Jedenfalls Die Regeneration ist gestartet. Super Arbeit!!!Habe aber das Gefühl das sie 2 mal gestartet ist.. Kann das sein..Ist eine Verriegelung evtl. möglich wen aktiv dass ein 2. Tastendruck nicht durchgeht...
                          Die Rückmeldung D_A_2_1 Restzeit wird aber nicht angezeigt oder?
                          Hier der debug dazu:

                          2019-03-07 17:35:47.798 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: registered 9 subscriptions and 1 schedule
                          2019-03-07 17:36:00.024 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Zyklus1 Daten wurden gesendet
                          2019-03-07 17:36:03.614 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:ok22.0---000117:3603:300365361192.168.1.24/24192.168.1.1192.168.1.10.0.0.01192.168.0.1/24softliQ:SC_d029d110-V01.01.020 5200.000.146.00.0 1380211 12h 01min146-516-----------------------
                          2019-03-07 17:36:14.401 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Änderung erkannt: Parameter ist=D_B_1 Status =1
                          2019-03-07 17:36:16.553 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:-
                          2019-03-07 17:37:00.051 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Zyklus1 Daten wurden gesendet
                          2019-03-07 17:37:03.612 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:ok22.0---000117:3703:300365361192.168.1.24/24192.168.1.1192.168.1.10.0.0.01192.168.0.1/24softliQ:SC_d029d112-V01.01.020 010.000.006.0-0.0 0100211 12h 02min146-516-----------------------
                          2019-03-07 17:38:00.051 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Zyklus1 Daten wurden gesendet
                          2019-03-07 17:38:03.613 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:ok22.0---000117:3803:300365361192.168.1.24/24192.168.1.1192.168.1.10.0.0.01192.168.0.1/24softliQ:SC_d029d112-V01.01.020 010.000.006.0-0.0 0100211 12h 03min146-516-----------------------
                          2019-03-07 17:39:00.044 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Zyklus1 Daten wurden gesendet
                          2019-03-07 17:39:03.612 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:ok22.0---000117:3903:300365361192.168.1.24/24192.168.1.1192.168.1.10.0.0.01192.168.0.1/24softliQ:SC_d029d112-V01.01.020 010.000.006.0-0.0 0100211 12h 04min146-516-----------------------
                          2019-03-07 17:39:50.865 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Änderung erkannt: Parameter ist=D_B_1 Status =0
                          2019-03-07 17:39:52.553 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Rueckmeldung SC18:-
                          2019-03-07 17:40:00.044 - info: javascript.0 script.js.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage: Zyklus1 Daten wurden gesendet
                          

                          Und Danke nochmal für die tolle Arbeit..echt klass!

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

                            @smartboart hast du für die manuelle Regeneration einen schalter genommen der auf 1 stehen bleibt oder einen Taster der nach Betätigung auf 0 zurückspringt?

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

                              Hi ein Schalter bleibt auf 1 stehen... Gedanke war ihn gleich als state Anzeige zu nehmen... Springt nach der reg wieder auf 0...aber jetzt wo du so fragst und ich drüber nachdenke ist ein Taster widget wohl besser...
                              Aber triggern tust du doch mit
                              on(instanz + pfad + 'Allgemein.D_B_1', function (obj) also auf 1 und 0 bzw. Change any... Also ist Schalter wohl doch OK...
                              ansonsten müsste man auf val 1 change ne triggern
                              Und nur if 0.
                              Also
                              on(instanz + pfad + 'Allgemein.D_B_1',val:1,change'ne', function (obj)

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

                                Heute Abend ist das Script wieder ausgestiegen.
                                Screenshot_20190307_215627.jpg

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

                                  @smartboart also hab ich verstanden mein Problem war ich hatte die states nicht gelöscht und dachte ich müsste die nehmen. Jetzt funktioniert es. Zu deriner erkenntnis mit D_A_2_1 ist mir aufgefallen das dieser nur bei Regenerationsschritt 3 angezeigt wird.
                                  Zum Thema Fehlermeldung über die Potentialfreien ... finde ich schade dass dies nicht auch über die Weboberfläche abgegriffen werden kann.
                                  Vielleicht gibt s diese Abfrage ja und Grünbeck gibt diase halt nicht raus.

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    ArnoD last edited by

                                    Habe das Script noch mal optimiert und ein zusätzliches State zum Auslesen vom Fehlerspeicher hinzugefügt.

                                    @smartboart wurde bei dir die Regeneration zweimal gestartet oder nur der Send befehl vom Script ?

                                    Eigentlich müsste es egal sein, ob man einen Taster oder Schalter verwendet.
                                    Das Script reagiert auf eine Änderung vom state D_B_1 und schickt den Wert 1 an die SC18, bei der zyklischen Abfrage wird
                                    von der SC18 der state D_B_1 wieder auf 0 gesetzt.
                                    Der Fehler war, dass diese Änderung noch mal einen Send Befehl ausgelöst hat. Ich prüfe jetzt vorher, ob der State 1 ist und Sende nur dann die Änderung an die SC18.

                                    Der Fehler "socket hang up" kommt, wenn zu viele Anfragen in zu kurzer Zeit gestellt werden oder du keine Netzwerkverbindung zur SC18 hast.
                                    Die Netzwerkverbindung zu prüfen und im Script darauf zu reagieren ist, das was ich mir noch vorgenommen habe.
                                    Kann jetzt aber etwas dauern, muss mich bei meiner Frau wieder einschmeicheln 😇 , die ist etwas zu kurz gekommen in den letzten Tagen. 😉

                                    smartboart 1 Reply Last reply Reply Quote 0
                                    • A
                                      ArnoD last edited by

                                      @schmid_no1 durch die Weboberfläche von Grünbeck habe ich alle möglichen Werte gefunden, aber eine Störmeldung von der SC18 war nicht dabei. Wenn es die geben sollte wird sie von Grünbeck auch in der eigenen App nicht verwendet.

                                      Ok zum Abschluss noch mein View Grünbeck:
                                      2019-01-27 19_19_01-Edit vis.png

                                      1 Reply Last reply Reply Quote 0
                                      • smartboart
                                        smartboart @ArnoD last edited by smartboart

                                        @ArnoD die Regeneration wurde 2 x gestartet... Bzw. Das erste Mal kam sie bis zum Schritt besalzen und wurde abgebrochen und ist dann ein 2. Mal gestartet.. Wird ein Tastendruck zu viel gewesen sein... Den Befehl nur bei change ne und nur bei 1 abzusetzen ist da besser.. Zusaetzlich verriegeln mit ner if Bedingung wenn Regeneration nicht aktiv wuerde das zusaetzlich verhindern...

                                        Schau mir die Änderung dazu nachher mal an..
                                        Und viel spass beim einschmeicheln. Ich kenne das.. Iobroker birgt echt eine Suchtgefahr
                                        ... 😂😂😂

                                        1 Reply Last reply Reply Quote 0
                                        • smartboart
                                          smartboart @ArnoD last edited by smartboart

                                          @ArnoD

                                          //manuelle Regeneration Int 1=Start
                                          
                                          on(instanz + PfadEbene1 + 'Allgemein.D_B_1', function (obj) 
                                          
                                          {
                                          
                                             StatePfad = instanz + PfadEbene1 +'Allgemein.D_B_1';
                                          
                                             Parameter = 'D_B_1'
                                          
                                             neuerWert = getState(StatePfad).val;
                                          
                                             if (neuerWert == 1)
                                          
                                             {
                                          
                                                  EditState(StatePfad,Parameter,neuerWert);
                                          
                                              } 
                                          
                                          });
                                          

                                          Hi, hab dazu nochmal nachgedacht.. Must nicht gleich draufspringen, hast genug geleistet die letzten Tage...Ich wollte es nur nicht vergessen, deshalb schreibe ich es gleich mal nieder..
                                          Was passiert denn wenn die Regeneration fest oder auto losläuft. Dann fängt dieser Script Teil ja auch an loszulaufen. Das heist zusätzlich zu festen oder auto Regeneration würde die anlage nochmal den Befehl zum starten bekommen. Wenn ich das richtig sehe, wäre eine Lösung um das zu unterbinden mit einem Hiflsmerker oder zusätzlichen state zu arbeiten. Ansosnten behebt das natürlich erstmal mein beschriebenes Problem mit dem 2 Tastendruck.
                                          Den scriptteil würde ich aber mit ner zuzsätzlichen Bedingung / Hilfsmerker bei von der anlage gestarten Reg blockieren.
                                          Einfacher wäre vlt. nen eigen State als Trigger zu nehmen und die Regeneration / State D_B_1 nicht mit sich selbst zu triggern.

                                          smartboart 1 Reply Last reply Reply Quote 0
                                          • smartboart
                                            smartboart @smartboart last edited by smartboart

                                            nur ein Lösungsansatz..Werde es bei mir mal so testen...

                                            createState(instanz + PfadEbene1 + PfadEbene2[7] + 'Regenerationsstart', {def: 'false',name: 'Regenerationsstart',type: 'boolean',role: 'state',desc: 'State zum starten der Regeneration'});
                                            
                                            //manuelle Regeneration  true=Start
                                            
                                            const idRegStart = 'javascript.0.Status.Gruenbeck.SC18.Ausseneingriff.Regenerationsstart';
                                            const idReg = 'javascript.0.Status.Gruenbeck.SC18.Allgemein.D_B_1';
                                            
                                            on({id:idRegStart,val:true,change:'ne'}, function (obj){
                                            
                                               Parameter = 'D_B_1'
                                            
                                               var Regeneration = getState(idReg).val;
                                               
                                               var Trigger = getState(idRegStart).val;
                                               
                                               setStateDelayed(idRegStart,false,1*1000);
                                            
                                               if (Regeneration === 0 && Trigger === true){
                                            
                                                    EditState(idReg,Parameter,1);
                                            		
                                               }else{
                                            	   
                                            	   if (debug) {console.log('Regeneration bereits aktiv')}
                                            		
                                            		
                                            
                                                } 
                                            
                                            });
                                            
                                            
                                            

                                            nur ein Lösungsvorschlag

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            684
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            138
                                            20335
                                            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