NEWS
Test Intext App v0.0.x
-
@malvin76 Es handelt sich dabei um eine REST-API, du musst die korrekten "Seiten" ansprechen. Es gibt dort keine HTML-Seiten, sonden nur URLs, die mit JSON-Objekten auf Anfragen antworten.
https://de.ryte.com/wiki/REST-API
Nutzt du Nodered oder ioBroker oder beides?
Brauchst du die Steuerung für Nodered?
Was ist ein "normaler Pool"?Du kannst auch gerne den Code posten. Ich hatte am WE einen Wasserschaden im Haus, weil meine Heizung meinte, nach 8 Jahren und jährlicher Wartung das Haus zu Überfluten ... Der Fehler wurde wohl durch die Wartung hervorgerufen
Sonst wären das Decodieren der Zustände und eine saubere Steuerung von an und aus je Zustand schon fertig. -
Hi,
wir haben seit neuestem einen Whirlpool von Intex und ich würde mich sehr über einen funktionierenden Adapter freuen.
Kann ich euch irgendwie unterstützen?
Ich kann prinzipiell programmieren, allerdings nicht Javascript.
SG, Gregor -
@grex1975 welches Modell?
-
@plchome-0 Whirlpool Pure-Spa Bubble & Jet - Groß, ist ein Salzwassersystem, werde es aber auch mal mit Wasserstoffperoxid probieren.
Value5=Active Action, Value7=Current Temperature, Value15=Goal Temperature
Hat schon jemand den Sinn der anderen Values herausgefunden? -
@grex1975 top, ja das ist das Standardsystem.
Man kommt gar nicht zum Programmieren, wenn man da jeden Tag über 2h drinsitzt und Fernsehen gucktWie ich schon geschrieben habe, hatte ich einigen Trouble mit der Heizung.
Werde morgen einchecken, bim mal gespannt, was ihr sagt.. -
@plchome-0 klingt entspannend
Danke für Version 0.0.5
Wenn ich remote/TempSet ändere, bekomme ich den neuen Wert nach 30-60 Sekunden auf dem Smartphone zu sehen, und nach einem Refresh des Browsers passt sich auch control/TargetTemperature an.
So weit so gut -
-
@plchome-0 Welches Passwort und welche Guideline?
-
@tombox In den Confis steht, dass Passwörter verschlüsselt sein sollen, es gibt auch einen Beispielcode für den iobroker
-
@plchome-0 Wird native von ioBroker verschlüsselt
https://github.com/TA2k/ioBroker.intex/blob/050e7132fd077ccfacba0f3488be9e76f733928e/io-package.json#L93 -
@tombox aha den kannte ich nicht, ich musste damals noch den Code einfügen, damit der Adapter Stabile werden konnte
-
@plchome-0 Adapter ist auch schon im stabilen branch
-
@tombox OK. Was hältst du von prettier im zusammenhang mit lint?
-
@grex1975 @tombox
Hallo zusammen,ich habe jetzt das Umschalten von Celsius und Fahrenheit eingebaut.
Die control sollten jetzt definiert schalten, das funktioniert nach folgendem Schema:- Der ist Zustand, wird mit dem soll Zustand verglichen.
- Ist er ungleich, wird geschaltet.
- Der Zustand wird gemerkt und beim nächsten Update abgeglichen.
- Ist der Zustand nun unterschiedlich, wird noch mal geschaltet.
- Das wird 5-mal versucht, danach kommt die Warnung, dass nicht gesetzt werden kann.
-
@plchome-0
Halloumschalten C/F von iobroker aus funktioniert einwandfrei bei mir.
jetzt brauche ich noch das Schalten der Heizfunktion dann könnte ich die Heizung in Abhängigkeit der PV Anlage programmieren -
Wie läuft eigentlich die gesamte Kommunikation ab?
Pumpenbox <-> Fernbedienung: Bluetooth?
Fernbedienung <-> Intex Cloud: WLAN. Wird da jede Zustandsänderung (z.B. Einschalten Filter) an die Cloud geschickt? Wer verwaltet den Scheduler, wenn sich z.B. der Sanitizer nach 3h ausschalten soll - die Cloud, die Fernbedienung oder die Pumpenbox?
Smartphone App: WLAN zur Fernbedienung oder geht alles nur über die Cloud? Im 2. Fall also etwa so: das Smartphone meldet sich in der Cloud an, sendet den Befehl aufgrund meines Fingerdrucks, die Cloud sendet das an die Fernbedienung bzw. alle angemeldeten Geräte? und die Fernbedienung gibt es an die Pumpenbox weiter.
Die App am Smartphone aktualisiert die Werte nur alle heiligen Zeiten oder wenn ich mich neu anmelde. Gibt es kein "Push", muss der aktuelle Status regelmässig abgefragt werden?
Bitte um Richtigstellung meiner zusammengereimten Vorstellung
LG,
Gregor -
@grex1975
Die App kommuniziert mir der Cloud.
Die Cloud kommuniziert mit dem WLAN-Empfänger im Pool.
Ich meine, der sitzt im Bedienteil.
Der WLAN-Empfänger im Pool wiederum mit dem Bedienteil oder der Steuerplatine.
Bedienteil und Steuerplatine kommunizieren über einen Serielumsetzer im 2.4 GHz Band untereinander.Aufgrund der Laufzeiten gehe ich davon aus:
Die App sendet eine Anfrage an die Cloud,
Die Cloud fragt den WLAN-Empfänger im Pool ab.
Ob der nun die Daten vorhält oder bei der Steuerung abfragt, weiß ich nicht.
Der WLAN-Empfänger im Pool sendet die Zustände an die Cloud.
Die Cloud wiederum an die App.Das Protokoll des Seriellumsetzers ist auch geknackt, hier gibt es einen MQTT Umsetzer für ältere Pools ohne WLAN, funktioniert aber auch mit den NEUEN Pools, da an der Kommunikation zwischen Bedienteil und Pool nichts geändert wurde:
https://github.com/Yogui79/IntexPureSpaDas läuft übrigens flüssiger als die APP von Intex
-
@tombox
Mir ist gestern ein Problem mit dem Control aufgefallen. Es kommt durch die Laufzeit:Wenn ich schalte und kurz vorher der Status abgefragt wurde, wird von der Cloud noch der alte Status zurückgegeben.
Dann fängt er an zu toggeln. Ich hab aber schon eine quick Lösung: Sid muss kleiner sein as die Zeit, zu der geschaltet wurde.Es soll den Jet ausschalten und sieht ihn immer nur als "Ein", da die Cloud immer abwechselnd den alten und den Neunen Status zurückgibt.
2022-06-02 23:20:16.507 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204815878","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:20:19.037 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204818461","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:20:37.067 - debug: intex.0 (11783) {"sid":"1654204815878","type":2,"result":"ok","data":"FFFF110F010B001E0000000080808023000011"} 2022-06-02 23:20:37.126 - debug: intex.0 (11783) send:8888060F011000C8 2022-06-02 23:20:37.726 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204837128","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:20:39.465 - debug: intex.0 (11783) {"sid":"1654204818461","type":2,"result":"ok","data":"FFFF110F010B001E0000000080808023000011"} 2022-06-02 23:20:39.506 - debug: intex.0 (11783) send:8888060F011000C8 2022-06-02 23:20:40.077 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204839506","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:20:50.716 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204850078","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:11.238 - debug: intex.0 (11783) {"sid":"1654204850078","type":2,"result":"ok","data":"FFFF110F010B001E0000000080808023000011"} 2022-06-02 23:21:11.297 - debug: intex.0 (11783) send:8888060F011000C8 2022-06-02 23:21:11.893 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204871298","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:13.043 - debug: intex.0 (11783) send:8888060F011000C8 2022-06-02 23:21:13.608 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204873045","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:19.129 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204878461","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:24.276 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204883609","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:39.618 - debug: intex.0 (11783) {"sid":"1654204878461","type":2,"result":"ok","data":"FFFF110F010B001E0000000080808023000011"} 2022-06-02 23:21:39.695 - debug: intex.0 (11783) send:8888060F011000C8 2022-06-02 23:21:40.277 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204899696","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"} 2022-06-02 23:21:44.711 - debug: intex.0 (11783) {"sid":"1654204883609","type":2,"result":"ok","data":"FFFF110F010B001E0000000080808023000011"} 2022-06-02 23:21:44.797 - warn : intex.0 (11783) Cannot set control e8fa6219-64f7-4aa2-bac4-************.control.Jet to false 2022-06-02 23:21:51.284 - debug: intex.0 (11783) {"deviceId":"e8fa6219-64f7-4aa2-bac4-************","sessionId":"1654204910279","iotDataType":"C2DCommand","c2DCommandStatus":"Sended"}
Ich würde die Zustandsabfrage gerne umbauen, aktuell gibt es einen Time-out und einen zyklischen Timer. Ich hätte gerne einen Timeout der nach der Eingestellten zeit läuft, auf Time-out prüft und dann nach Intervall - Time-out neu startet.
Nach dem Schalten sollte die Zeit zur nächsten anfrage verkürzt werden und dann wieder in den Zyklus gewechselt werden. -
Also bei mir gehts, ack muss fals sein:
let autoheat = false const pvSOC='growatt.0.359213.devices.NNCJA2400C.statusData.SOC'/*Soc*/; const poolPower = "intex.0.e8fa6219-64f7-4aa2-bac4-xxxxx.control.Power" const poolHeat = "intex.0.e8fa6219-64f7-4aa2-bac4-xxxxx.control.Heat" const poolSanitzer = "intex.0.e8fa6219-64f7-4aa2-bac4-xxxxx.control.Sanitizer" start() async function start() { let state = await getStateAsync(pvSOC); doHeat(state); } on({id: pvSOC, change: "ne"},(obj)=>{doHeat(obj.state)}); async function doHeat(state) { if (state.val >= 85 && !autoheat) { setState(poolPower,true,false); setState(poolSanitzer,false,false); setTimeout(async ()=>{ setState(poolHeat,true,false); autoheat = true; },1000) log ('on') sendTo("email.0", { //from: "iobroker@mydomain.com", //to: "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients. subject: "Es ist viel Sonne am Himmel", text: "Der Pool wird geheitzt..." }); } else if (state.val < 80 && autoheat) { autoheat = false; setState(poolHeat,false); sendTo("email.0", { //from: "iobroker@mydomain.com", //to: "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients. subject: "Die Sonne geht weg", text: "Die Poolheizung wird abgestellt..." }); } };
-
Überwachung