NEWS
Daten aus einer Website mit Javascript
-
Hallo smartboart
Ich denke der Fehler kommt wenn nach 15 s kein callback kommt.
Vorallem wenn du anderweitig auf deine Anlage zugreifst wird wird die Schnittstelle überlastet sein und somit kein callback ausgegeben.
Hast du deinen debug auf true oder false. Wenn du den auf true hast wird dir das Script jeden falschen callback als Fehler anzeigen -
Ja das ist genau das Problem, womit ich mich zurzeit beschäftige.
Habe noch keine Möglichkeit gefunden, das sicher abzufangen.
Habe jetzt noch ein paar Änderungen Vorgenomen:
- Automatische Zeit Synchronisation wenn Regenerationszeitpunkt auf "1=fest" eingestellt ist.
- Bei Änderung der Werte Ansprechverhalten,Regenerationszeitpunkt,Regenerationszeit wird
die Änderung an die SC18 gesendet.(!! noch nicht fehlerfrei, bei schnellen umschaltungen kommt send flag true Fehler !!)
- Parameter C_C_5_3 Automatische Umschaltung Sommer-/Winterzeit entfernt (ohne Funktion bei SC18) -
@smartboart es wäre für mich auch interessant zu wissen, wann dieser Fehler auftritt und was im log vor dem Fehler steht, wen der debug Modus aktiv ist.
Wie aber schon schmid_no1 richtig bemerkt hat, tritt der " flag true" Fehler immer auf, wenn keine Rückantwort kommt und aber mit xhr.open die nächste Anfrage gestartet wird.
Bin der Lösung auf der Spur. -
@ArnoD hi also wenn man den Guenbeck in Ruhe lässt und nicht über die App oder die web gui darauf zugreift verhält sich das script ruihg. Und mit dem aktuellen Funktionsumfang des Scripts und dank deine tollen Arbeit ist das ja bald nicht mehr nötig.
Mir ist da noch ein state aufgefallen, welcher meiner Meinung nach ebenfalls entfallen kann. DC52/Datum. wird glaube ich auch nicht unterstützt.
Habe das Script wieder auf debug um dir die infos liefern zu können. Aber um die SD zu schonen möchte ich es nicht die ganze Zeit auf debug laufen haben..
Die 3 neuen aktiven Funktionen habe ich auch in vis integriert. hat funktioniert...Mit der Regenerationszeit Einstellung braucht er 1 , 2 anläufe bis er es schluckt...
Echt happy damit! fehlt nur noch der manuelle Regenerationsstart. Hast du dir die Eigenschaften der web gui im explorer mal angeschaut wenn dort manuel gestartet wird?
-
Ok, habe jetzt noch mal mein Script aktualisiert.
Den Fehler "send flag is true" habe fast eliminiert
Bei mir tritt dieser Fehler nur noch auf, wenn ich zweimal hintereinander einen Wert über Vis ändere.
Das Problem ist einfach, Das die Schnittstelle sehr lange für Antworten benötigt bis zu 4 Sek. und dann noch mal 2 Sek. um
wieder Daten empfangen zu können.
@smartboart wird bei dem State D_C_5_2 auch nichts übertragen, wenn Das Inbetriebnahmedatum eingetragen wurde??
Das wollte ich noch testen, bevor ich lösche
Mit dem manuellen Regenerationsstart werde ich mich dann jetzt mal beschäftigen. -
Das inbetriebnahmedatum ist bei mir auch leer... Habe sie selber in Betrieb genommen. In meiner view ist das inbetriebnahmedatum manuell gesetzt... Ich versuche noch an das Service Passworts ran zu kommen, weil ich auch gerne die potentialfreie stoermeldung ueber gpio in meinem slave einlesen möchte..
-
_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.
-
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. -
@ArnoD Hallo ArnoD wie steuerst die Schnittstelle an?
-
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... -
@ArnoD Danke für den Hinweis...Vlt. sollte ich doch mal anfangen Bedienungsanleitungen zu lesen.
-
@smartboart würde dies auch über ein knx Binäreingang funktionieren?
-
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.
-
xxx fehlerhafter post xxx
-
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. -
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. -
@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!
-
@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?
-
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) -
Heute Abend ist das Script wieder ausgestiegen.