NEWS
Grünbeck SC18 Daten mit JS auslesen
-
Ich habe hier ein neues Thema erstellt um Besitzer einer Grünbeck SC18 zur Weiterentwicklung des Javascript zum Auslesen der Anlagenparameter zu ermuntern.
Dank der Hilfe und Unterstützung von hiasii12, smartboart und schmid_no1 sind wir bereits ein gutes Stück vorrangekommen.
Da ich leider nicht der Profi bin was Javascript angeht, erhoffe ich mir hier Unterstützung bei der Optimierung und vielleicht ist ja auch jemand dabei der dafür einen Adapter erstellen kann.
Erst einmal eine kurze Anleitung, für die Einbindung der Grünbeck SC18 in IO Broker mit Javascript, für alle die es testen wollen, aber nicht wissen wie sie vorgehen müssen.IO Broker vorbereiten:
Im Web-Interface des Admin-Adapters prüfen ob folgende Adapter installiert sind:
• JavaScript Script EngineFür den JavaScript Adapter eine Instanz anlegen und folgende Einstellungen durchführen:
javaScript.0: Konfiguration öffnen und folgende NPM Module einbinden.
xmlhttprequest, xml, xmldom, regexScript kopieren / starten:
Im Web-Interface des Admin-Adapters oben links auf das Dreieck klicken und prüfen ob die Auswahl „Skripte“ angewählt ist. Links in der Leiste Skripte auswählen und in dem Fenster auf das Plus Symbol klicken. Jetzt Javascript „hinzufügen“ anwählen und folgende Auswahl treffen:
Name: Grünbeck (kann frei vergeben werden)
Mappe: common
ID: kann leer bleiben oder eine ID vergebenDen Script Text weiter unten kopieren In das rechte Fenster einfügen und auf speichern klicken.
Jetzt das Script mit dem roten Dreieck starten.
Es werden nun alle benötigten States unter Objekte / javascript.0 / Grünbeck / SC18 / angelegt und können über Vis genutzt werden.
Wer hier auch nicht so visiert ist, kann meine Vorlage „View_Grünbeck“ verwenden.
Dazu müssen folgende Adapter installiert sein:• Hqwidgets style Widgets
• jQuery-Ui style Widgets
• justGage Widgets
• metro style Widgets
• plumb style Widgets
• bars Widgets
• canvas-gauges style Widgets
• rgraph style WidegetsDen Vis Editor öffnen und oben den Reiter Views auswählen.
Auf „View importieren „ klicken und den Text aus der Datei Grünbeck_View weiter unten kopieren und in das Fenster einfügen. Der Viewname kann frei vergeben werden.
Jetzt noch View importieren auswählen.
Gruenbeck_v1.8.0.js
Gruenbeck_v1.8.1.js
Gruenbeck_v1.8.2.jsGeplante Änderungen oder Themen an denen noch gearbeitet wird bzw. die noch optimiert werden sollen:
- Script erweitern für die SC23 oder MC (Benötige hierfür Tester mit eine SC23 )
Fehler "Error in callback: Error: INVALID_STATE_ERR: send flag is true" nachhaltig lösen.Merker für Änderungen in Vis so das diese bei aktivem Sendevorgang im Anschluss ausgeführt werden.Fehler bei fehlender W-Lan Verbindung abfangen.- Auswertung Fehlerspeicher SC18 und bei neuem Fehler State auf true setzen.
- schleichwasser Überwachung
Werde diese Liste laufend ergänzen wenn noch neue Vorschläge bzw. Wünsche kommen und die Punkte durchstreichen die erledigt sind.
-
Eine Kleinigkeit leicht umzusetzen haette noch.. Fuer die manuellen Eingaben wuerde sich noch ein zusätzliches log level anbieten...
var logging = true If (logging) log
Habe da ne Schwiegermutter die immer sagt sie haette nix gemacht...
-
Kann dir jetzt nicht ganz folgen, ist auch schon spät
Kannst du mir ein Beispiel geben wie du das mit log umsetzen willst. -
Hi Jungs hab noch ein neues Grünbeck.png gemacht, da man es für dein View braucht.
-
passt das mit dem hochladen so?
-
@ArnoD genau so wie du es mit dem debug bereits gemacht hast.. Nur der debug haut einem ja das log zu... Wenn das Script macht was es soll deaktiviere ich das debug ja im Script... Damit man aber Benutzereingaben nachvollziehen kann hab ich dafür in der Regel noch ein Standart log level..Als log fuer alles was nix mit dem rundlauf des script zu tun hat.
Beispiel...on({id:'rpi2.1.gpio.23.state',val:false,change:'ne'}, function (obj){ sendTo("telegram.0", "send", {text:'Achtung!!! Weichwasseranlage Sammelstörung. Überprüfen sie die Anlage!'}); sendTo("paw.0",'all',{send: 'say', text: 'Achtung! Weichwasseranlage Sammelstörung . Überprüfen sie die Anlage!'}); if (logging) log ('Sammelstörung Weichwasseranlage'); });
-
@schmid_no1 glaube das original Bild lässt sich im alten Beitrag auch noch runter laden... Ansosnten wenn es Transparent ist ist es gut..
-
Es ist transparent
-
@smartboart ok ist natürlich kein Problem, werde ich übernehmen.
@schmid_no1 Bild ist klasse, sogar mit Radius Verwende jetzt dein Bild, sieht einfach besser aus.
Habe im Moment leider nicht so viel Zeit, aber ich bleibe dran auch wenn es jetzt etwas dauert.
-
@all gestern Abend hat sich meine Anlage komplett aus dem Wlan abgemeldet...ich musste an der Anlage selbst das Wlan wieder aktivieren...
Hattet ihr das auch schon? Hat mal einer getestet ob nach Stromausfall das Ding von selbst wieder online ist? -
Seit ich die Anlage habe ist das noch nie vorgekommen das diese das WLAN ausgeschaltet nur Verbindungsprobleme da ich meinen Router früher weiter weg hatte
-
@schmid_no1 Dann muss ich mal weiter beobachten ob das wieder auftritt.
-
@ArnoD ich hätte da ne idee für den Fehler send flag is true...
Ist nur ein patch , so ne Art workaround.Der Javascript Adapter legt für jedes script einen State an ( SkriptProblem )
Der wird bei dem Fehler auch brav auf true gesetzt. Damit lasse ich mir den fehlerfreien Betrieb bzw. den Fehler in vis anzeigen...
ich lasse eine Funktion laufen, welche auf diesen State triggert und das Script über den State Skript Enabled welcher auch vom Javascriptadapter angelegt wird, anhalten. Nach 2 Sekunden lasse ich das script wieder loslaufen. Vorausgesetzt das Gerät ist im Wlan angemeldet.Ist nicht schön aber wie gesagt ein Pflaster, bis wir wissen was los ist.
const id1 = 'javascript.0.scriptEnabled.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage'; const id2 = 'javascript.0.scriptProblem.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage'/*scriptProblem common Status Geraete THW Weichwasseranlage Gruenbeck Weichwasseranlage*/; const id3 = 'javascript.1.scriptProblem.common.Status_Geraete.THW.Weichwasseranlage.Gruenbeck_Weichwasseranlage'/*scriptProblem common Status Geraete THW Weichwasseranlage Gruenbeck Weichwasseranlage*/; const id4 = 'tr-064.1.devices.Gruenbeck-Weichwasseranlage.active'; var logging = true function checkSkript() { var enabled = getState(id1).val; var problem0 = getState(id2).val; var problem1 = getState(id3).val; var connect = getState(id4).val; if(problem0 === true || problem1 === true){ setState(id1, false); if(logging)log('Grünbeckscript wegen Problemen angehalten'); }else{ if(connect === true && enabled === false){ setStateDelayed(id1, true,2*1000); if(logging)log('Grünbeckscript wird nach Problemabschaltung in 2 Sekunden wieder eingeschaltet'); } } } //Skriptstart checkSkript(); if(logging)log('Skriptstart'); on(id1, function(dp) { checkSkript(); }); on(id2, function(dp) { checkSkript(); }); on(id3, function(dp) { checkSkript(); }); on(id4, function(dp) { checkSkript(); });
Hab das jetzt erstmal so gelöst, weil mir das Script heute die ganze Nacht den Log voll geschrieben hat, weil sich das Wlan am Gerät abgeschaltet hat...warum auch immer...
-
Ich habe meine W-Lan Probleme erst mal gelöst. Musste bei meinem Router einen festen Kanal einstellen, da die SC18 anscheinend bei einem Kanalwechsel vom Router beleidigt ist.
@smartboart das Problem hatte ich bis jetzt noch nicht, bei mir verbindet sich die SC18 auch nach einem Stromausfall automatisch wieder mit dem W-Lan.
Habe das Script wieder aktualisiert und deine Änderungswünsche berücksichtig.
Habe dein Lösungsvorschlag, bezüglich merken einer Änderung in Vis von dir, leicht abgewandelt.
Wegen dem Fehler „send flag true“ bin ich gerade dabei mir „try catch throw“ anzuschauen ob ich es dafür verwenden kann. Muss mich aber erst noch einlesen und dann experimentieren. -
@ArnoD hi Arno könntest du noch einen Zähler so wie beim Salz für den Wasserverbrauch machen das man so was ähnliches wie eine wasseruhr hat?
Und wenn es möglich wäre diesen zähler mit einem Datum versehen. Also wenn er auf 0 gesetzt wird aktuelles Datum schreiben. Beim Salz dann natürlich auch️ -
@schmid_no1 Habe jetzt eine Berechnung vom Gesamtwasserverbrauch, also 0°dH Wasser + Verschnittwasser hinzugefügt.
Aktuelles Datum wird gesetzt wenn der State Wasserzähler auf 0 gesetzt wird.
Ich habe zwei neue States angelegt "Wasserzähler" und "DatumWasserzähler"
Datum für Salzverbrauch werde ich bei Gelegenheit noch machen. -
@ArnoD super gemacht Arno habs schon am laufen. Würde es gehen wenn mann die eingestellte Härte des Wassers hat den genauen Wasserverbrauch zu errechnen?
Und ich glaub bei der Berechnung des gesamt Salzverbrauchs ist ein kleiner Fehler, da der Salzverbrauch 1 zu 1 auf den Gesamtzähler drauf rechnet egal wie hoch der ist.
-
@ArnoD Sorry Arno hab mir grad die Berechnung im Script angeschaut der 1 Punkt meines letzten Eintrags ist hinfällig
-
Der gesamt zaehler ist doch richtig... Du resettest doch nur den Salzverbrauch nach Auffüllen... Der gesamt zaehler rechnet fleißig weiter... Also wenn du beide 0 hast sind beide solange gleich bzw addieren weiter bis du den einen auf 0 zurueck setzt... Dann zahlt der ab 0 weiter und der gesamt macht da weiter wo er war...
-
Dann muss ich heute Abend abwarten wahrscheinlich war ich zu ungeduldig