NEWS
Daten aus einer Website mit Javascript
-
@smartboart "E4_h5883" z.B. im Internet findet man halt leider gar nichts.
-
@smartboart "E4_h5883" z.B. im Internet findet man halt leider gar nichts.
@schmid_no1 eventuell mal beim Hersteller anfragen.
-
Ich weiĂ nur das die erste Position E4 der Fehlercode ist und _hxxxx wann der Fehler aufgetreten ist.
Ich habe jetzt die Berechnung Salzverbrauch nach Angaben und Formel der Fa. GrĂŒnbeck erstellt. Jetzt mĂŒssen wir nur noch 6 Monate warten, um zu sehen, ob diese Berechnung auch stimmt. :joy: -
Cool echt klasse!!!! Sehr gute Arbeit... Und wirklich durchdacht. Ohne Anpassung fuer jeden passend! Morgen gleich einpflegen... Dann Hab ich mir die Arbeit und Salz Menge messen ja gespart...
Habe heute Kabel gezogen... Habe mich dazu entschlossen den potentialfreien stoermelde Kontakt im verteiler Schrank einzulesen... Mit dem raspi slave lese ich eh schon Klingel und netzausfall ueber Relais ein.. Hat den Vorteil das stoerung vom Geraet und netzausfall am Geraet Hardware maessig zusaetzlich ĂŒberwacht sind... Das Kabel ist gut investiert.. Als nĂ€chstes wssserzaehler und Heizung noch mit einlesen...Ich werde die Tage ein Script Scheiben um bei Abwesenheit und unter 10% und Waschmaschine nicht an und reg nicht aktiv automatisch die reg gestartet wird.. Sowie wenn nur 1% dann unabhĂ€ngig der Regel die reg gestartet wird wenn nicht bereits aktiv...
evtl. Ist das ja auch was fuer euch... -
@ArnoD Richtig cool !!!!
nur noch ne kleine Frage ist das der Salzverbrauch pro Tag? Wenn ja könnet man noch ein State dazufĂŒgen indem man eingeben kann wieviel Salz man eingefĂŒllt hat und durch deine Doku des TĂ€glich verbrauchten Salzes ausrechnet wie lange dieses noch halten wĂŒrde. -
@ArnoD Richtig cool !!!!
nur noch ne kleine Frage ist das der Salzverbrauch pro Tag? Wenn ja könnet man noch ein State dazufĂŒgen indem man eingeben kann wieviel Salz man eingefĂŒllt hat und durch deine Doku des TĂ€glich verbrauchten Salzes ausrechnet wie lange dieses noch halten wĂŒrde.@schmid_no1 Nein der Salzverbrauch bzw. die Berechnung wird getriggert durch den Wasserverbrauch vor einem Tag und dann immer dazu addiert. Im Prinzip bekommst du dadurch einen Salzverbrauch ĂŒber alles. Wenn du den zurĂŒck setzen willst, gib einfach einen neuen Start Wert ein! Also Setze den State Salzverbrauch auf 0 nach dem BefĂŒllen!
Das hat Arno schon super gemacht... Jetzt könnete man im Script noch einfĂŒgen, wenn der Salzverbrauch 10 kg oder einen anderen Erfahrungswert, habe ich noch nicht....ab wieviel Verbrauch wird Wasserr sichtbar? erreicht hat, setze einen weiteren State Salz nachfĂŒllen! Perfekt
@ArnoD Wenn ich das richtig sehe, ist fĂŒr die Berechnung ein gĂŒltiger Start Wert nötig oder? Also Salzverbrauch alt. Bei Scriptstart ist der Wert erstmal Null.... Es wird wahrscheinlich reichen den Wert in den objekten manuell zu beschreiben. Ansosnten könnte man es in dem Script konfigurierbar machen oder...Z.B ich habe schon 2 Kilo verbraucht also starten wir mit 2 Kilo... oder eben 25 oder was bis zum ersten Start des Skripts verbraucht wurde...Somit wĂ€re das Thema mit der Null weg... Oder du gibst einfach 0 vor...Oder eben einfach nur ein Hinweis bei Scriptstart Verbrauch bis dahin Salz manuell berechnen und eintragen.. oder eben einfach das Ding voll machen und 0 eintragen..
Korrigier mich wenn ich schwachsinn schreibe... :-)
oder einfach :
createState(instanz + PfadEbene1 + PfadEbene2[4] + 'Salzverbrauch', {name: 'Salzverbrauch in kg',type: 'number',role: 'number',desc: 'Salzverbrauch in kg',unit: 'kg',def:'0'});
fĂŒr den ersten Scriptstart. -
In dem Fall passt das so fĂŒr mich danke euch đ
-
Ich fĂ€nde es gut den Scriptteil nochmal laufen zu lassen mit nem weiteren State Salzverbrauch ĂŒber alles...Somit hĂ€tte man einen Gesamt Wert ĂŒber den gesamten lifecycle der Anlage. Den anderen habe ich fĂŒr den Salzwechsel zum zurĂŒcksetzen in vis .
Wenn du willst kannst du das noch einpflegen...Ansosnten muss ich bei aktualisierungen deines Scripts halt aufpassen..
Benutzt ihr Telegramm? Habe noch eine push Nachricht in den Salzverbrauch eingebaut..
Ebenfalls eine Pushnachricht bei Sammelstörung ( GPIO ) potentialfrei mit Ansage am Tablet.
ZusÀtzlich wird das Display eingeschaltet wenn der Raum betreten wird.
Ausserdem Autoregeneration bei Abwesenheit und Waschmaschine aus und <10%
oder bei unterschreiten 2 % mit rein genommen.
Ist aber alles eher individuel..macht wahrscheinlich keinen Sinn das mit rein zunehmen.
Aber vlt. möchte es ja jemand fĂŒr sich anpassen..createState(instanz + PfadEbene1 + PfadEbene2[4] + 'SalzverbrauchGesamt', {name: 'Salzverbrauch Gesamt in kg',type: 'number',role: 'number',desc: 'Salzverbrauch Gesamt in kg',unit: 'kg',def:'0'}); // Salzverbrauch Gesamt berechnen on(instanz + PfadEbene1 + PfadEbene2[5] + 'D_Y_2_01', function (obj){ /*Formel GrĂŒnbeck bei KapazitĂ€tszahl 8 mÂłx°dH und einem HĂ€rteunterschied von Rohwasser zu Brauchwasser von 12 °dH : 0,0285 kg x 12 °dH x 100 mÂł = 34,2 kg Regeneriersalz Bei der min. KapazitĂ€tszahl 6 mÂłx°dH entspricht der Salzverbrauch 0.025 kg Bei der max. KapazitĂ€tszahl 14 mÂłx°dH entspricht der Salzverbrauch 0.039 kg Es wird von einem liniaren Salzverbrauch von 0.00175 kg pro mÂłx°dH ausgegangen. (((KapazitĂ€tszahl-6)*0.00175)+0.025)x RohwasserhĂ€rte x (Wasserverbrauch/1000) */ const idSalzverbrauchGesamt = instanz + PfadEbene1 + PfadEbene2[4] + 'SalzverbrauchGesamt'; var Rohwasserhaerte = getState(instanz + PfadEbene1 + PfadEbene2[0] + 'D_D_1').val; var KapZahl = getState(instanz + PfadEbene1 + PfadEbene2[4] + 'D_A_1_3').val; var Wasserverbrauch = getState(instanz + PfadEbene1 + PfadEbene2[5] + 'D_Y_2_01').val; var SalzverbrauchAlt = getState(idSalzverbrauchGesamt).val; var SalzverbrauchNeu = (((KapZahl-6)*0.00175)+ 0.025)*Rohwasserhaerte*(Wasserverbrauch/1000) SalzverbrauchNeu = SalzverbrauchNeu+SalzverbrauchAlt; setState(idSalzverbrauchGesamt,SalzverbrauchNeu); if (debug) {console.log(SalzverbrauchAlt +" : "+ SalzverbrauchNeu)} }); // Pushnachricht bei Vebrauch > 10 kg on(instanz + PfadEbene1 + PfadEbene2[4] + 'Salzverbrauch', function (obj){ const idSalzverbrauch = instanz + PfadEbene1 + PfadEbene2[4] + 'Salzverbrauch'; var Salzverbrauch = getState(idSalzverbrauch).val; if(Salzverbrauch >= 10){ sendTo("telegram.0", "send", {text: (['Achtung: ',' Bitte Salz in Weichwasseranlage nachfĂŒllen.Verbraucht wurden',getState(idSalzverbrauch).val,'kg.'].join(''))}); if (logging) log ('Slazmangel Weichwasseranlage'); } }); // Pushnachricht bei Sammelstörung Weichwasseranlage Potentialfreier Kontakt 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'); }); // Display einschalten bei Betreten des Raum on({id:'zigbee.0.00158d0002bfc52d.opened'}, function (obj){ const idTuer = 'zigbee.0.00158d0002bfc52d.opened'; var Tuer = getState(idTuer).val; if(Tuer){ setState('javascript.0.Status.Gruenbeck.SC18.Parameter.D_C_6_1',1); if (logging) log ('Display Weichwasseranlage ein geschaltet'); }else{ setState('javascript.0.Status.Gruenbeck.SC18.Parameter.D_C_6_1',0); if (logging) log ('Display Weichwasseranlage aus geschaltet'); } }); //Regeneration starten wenn niemand zu Hause und Level unterschritten oder Level bei nur 1% var logging = true function Autoregeneration() { var Anwesend = getState('javascript.0.Anwesenheitssteuerung.BewohnerAnwesend').val; var Kapazitaet = getState('javascript.0.Status.Gruenbeck.SC18.Allgemein.D_Y_10_1').val; var Waschmaschine = getState ('javascript.1.Statusmeldungen.Waschmaschine.Status').val; var Regeneration = getState(idReg).val; if (Regeneration===0 && Anwesend===false && Waschmaschine===false && Kapazitaet <=5){ setState(idRegStart,true); if (logging) log ('Regeneration Weichwasseranlage wegen geringer RestkapazitĂ€t wĂ€hrend der Abwesenheit gestartet'); }else{ if(Regeneration===0 && Kapazitaet<=2 && Kapazitaet >1){ setState(idRegStart,true); if (logging) log ('Regeneration Weichwasseranlage kurz vor KapazitĂ€tsende gestartet'); } } } on({id:'javascript.0.Anwesenheitssteuerung.BewohnerAnwesend',val:false,change:'ne'}, function (obj){ Autoregeneration(); }); on({id:'javascript.0.Status.Gruenbeck.SC18.Allgemein.D_Y_10_1',change:'ne'}, function (obj){ Autoregeneration(); }); -
@smartboart du bist mir zu schnell :grinning:
Ich habe das Problem mit der Schnittstelle noch nicht gelöst :wink:
Ich habe immer noch das Problem das der Fehler "send flag true" vereinzelt auftritt und ich mir nicht mehr erklÀren kann warum. :thinking_face:
Ich habe jetzt das Script noch mal umgebaut. Es gibt nur noch eine Funktion, die Daten an die SC18 sendet.
Nach dem Senden der Daten starte ich einen Timer, der nach vier sek. ohne RĂŒckmeldung abbricht und die Daten werden noch mal gesendet.
Es werden nach dem Senden alle weiteren Anfragen ignoriert, bis die Schnittstelle entweder in den 4 sek. antwortet oder nach 4 sek. ĂŒber Timeout beendet wird.
Mit diesen Ănderungen hoffe ich, dass es besser wird.
@smartboart deine VorschlĂ€ge habe ich ĂŒbernommen bis auf Telegramm. Ich will ich erst die Schnittstelle so weit haben, dass diese stabil lĂ€uft , bevor ich was Neues beginne. -
@smartboart du bist mir zu schnell :grinning:
Ich habe das Problem mit der Schnittstelle noch nicht gelöst :wink:
Ich habe immer noch das Problem das der Fehler "send flag true" vereinzelt auftritt und ich mir nicht mehr erklÀren kann warum. :thinking_face:
Ich habe jetzt das Script noch mal umgebaut. Es gibt nur noch eine Funktion, die Daten an die SC18 sendet.
Nach dem Senden der Daten starte ich einen Timer, der nach vier sek. ohne RĂŒckmeldung abbricht und die Daten werden noch mal gesendet.
Es werden nach dem Senden alle weiteren Anfragen ignoriert, bis die Schnittstelle entweder in den 4 sek. antwortet oder nach 4 sek. ĂŒber Timeout beendet wird.
Mit diesen Ănderungen hoffe ich, dass es besser wird.
@smartboart deine VorschlĂ€ge habe ich ĂŒbernommen bis auf Telegramm. Ich will ich erst die Schnittstelle so weit haben, dass diese stabil lĂ€uft , bevor ich was Neues beginne.@ArnoD ich will dich nicht hetzen.. Es sind ja nur VorschlĂ€ge und ich bin auch nicht eingeschnappt wenn etwas nicht den Weg in dein Script findet đ
also bei mir lÀuft das script seit meiner letzten fehlerberichterstattung 3tage Keine Ahnung ohne Fehler!
Ach so es hat sich ein Schreibfehler eingeschlichen... Du hast aus Ausseneingriff Ausseneigriff gemacht.. đđđ
Die zusaetzlichen if abfragen finde ich grundsĂ€tzlich gut... Nachteil ist halt wenn die Bedingung nicht erfĂŒllt ist es nicht automatisch durchgefĂŒhrt wird wenn es dann erfĂŒllt ist...
ich bin kein java Profi... Alles was ich weiĂ habe ich mit try and error selbst raus gefunden...
ich wuerde hier bei wichtigen Funktionen mit der Regeneration zum Beispiel dann mit Merker arbeiten... Sobald die Bedingung nicht erfĂŒllt ist wird ein Merker gesetzt... Und sobald die Bedingung dann wieder gut triggert sie die Funktion und wenn der Merker noch gesetzt ist wird die Funktion ausgefĂŒhrt... NatĂŒrlich wenn die anderen Bedingungen noch erfĂŒllt sind.
Wenn du willst kann ich morgen was am Beispiel Regeneration schreiben... Hoffe ich kriege es hin... -
Uuups :joy: der Ausseneigriff soll aber auch wichtig sein. :joy: :joy:
Habe den Fehler korrigiert.Was habt ihr eigentlich fĂŒr einen Softwarestand, bei der SC18 ?? Meiner ist V1.01.02
Das Script lÀuft ohne Probleme, bis die W-Lan Verbindung zur SC18 abbricht.
Habe noch nicht rausgefunden, an was das liegt und warum dann das Script mit dem Fehler "send flag true" stoppt. -
Meinst du die "Keine Rueckmeldung" ?
An eine Art Merker habe ich auch schon gedacht, aber diese mĂŒsste man dann wieder zyklisch abfragen und
der Reihe nach abarbeiten. Man könnte natĂŒrlich auch ein Array als Merker erstellen und in einer Schleife abarbeiten.
In der Zeit wird natĂŒrlich die zyklische Abfrage aller anderen Werte angehalten.
Da ich auch kein Profi bin, was Javascript angeht und ich gerade erst den Umgang damit lerne, bin ich fĂŒr jede Hilfe dankbar. :grinning: :+1: -
V01. 00. 37
Und ich versteh nur Bahnhof was ihr da kreiertđ -
V01. 01.02... Das mit WLAN kann schon sein... Ich habe im Keller ein separates WLAN fuer smart home geraete... Fast ohne fremdeinwirkung bzw. Stoerfrequenzen.. Und der Router Fritte 7590 ist nur 4m weg im BĂŒro... Vlt. Ist ein stabiles WLAN von Vorteil... Hab da auch nur 6 - 7 Teilnehmer drinnen... Nicht so wie im EG... Da hab ich aufgehört zu zĂ€hlen...
-
Ich hab die Anlage schon seit fast 3 Jahren hatte auch mal ein Script das funktionierte aber zu deiner arbeit ist das kein Vergleich
-
Meinst du die "Keine Rueckmeldung" ?
An eine Art Merker habe ich auch schon gedacht, aber diese mĂŒsste man dann wieder zyklisch abfragen und
der Reihe nach abarbeiten. Man könnte natĂŒrlich auch ein Array als Merker erstellen und in einer Schleife abarbeiten.
In der Zeit wird natĂŒrlich die zyklische Abfrage aller anderen Werte angehalten.
Da ich auch kein Profi bin, was Javascript angeht und ich gerade erst den Umgang damit lerne, bin ich fĂŒr jede Hilfe dankbar. :grinning: :+1:@ArnoD ich haette schwören können du bist Profi... Fuer meine VerhĂ€ltnisse auf jeden Fall...
Apropo WLAN.. Ich hatte hier mit wlan mesh jedemenge Probleme... Bis ich es deaktiviert hatte und 2 WLAN Netzwerke aufgebaut habe.. Seit dem war ruhe... Vlt hat du ja auch wlan mesh aktiv -
Und bei mir lÀuft alles fehlerfrei seit 4 Tagen
-
Ich hab die Anlage schon seit fast 3 Jahren hatte auch mal ein Script das funktionierte aber zu deiner arbeit ist das kein Vergleich
@schmid_no1 3 Jahre... Wie sind die Erfahrungen? Ich hab die erst eine Woche im Betrieb... Macht nen guten Eindruck... Muss dazu sagen der threat hier hat mir die Kaufentscheidung leichter gemacht... Sollte unbedingt mit iob können.
-
Die Anlage lÀuft ohne Probleme bei 2 Personen und 2 Kleinkinder bei einem durschnittsverbrauch von ca. 220 Liter aktuell. Wie gesagt finde ich voll cool das sich dem entlich einer annimmt