NEWS
Aqualink Pool Automation in iobroker integrieren
-
Hi Leute,
ist es möglich Pool Automations Systeme die mit dem Aqualink Protokoll arbeiten mit iobroker zu verknüpfen ?
Ich würde nämlich gerne die Daten/Werte aus meiner Zodiac Tri Expert Salzanlage (PH Wert, ACL Wert, Temperatur, ...) in iobroker bekommen.Es gibt dazu auch schon einen daemon auf github, der für mich als Laie vielversprechend aussieht für mein Vorhaben.
https://github.com/sfeakes/AqualinkD
Ob das Projekt aber mit iobroker verknüpfbar ist, kann ich leider nicht beurteilen ...
Es wäre toll wenn da mal ein Profi einen Blick drauf werfen könnte, ob das möglich ist, mit welchem Aufwand und wie das grob funktionieren könnte ?
Danke.
Beste Grüße
-
das ding kann mqtt .. also sollte relativ einfach sein die Datenpunkte abzugreifen..
API hats auch..
kurz und knapp : sollte gehen
-
@arteck : Super! Vielen Dank für die Info.
In der Beschreibung steht linux daemon. Ich gehe also davon aus, dass ich einen Linux Server dafür brauche richtig ?
Oder gibt es eine Möglichkeit diesen daemon auch auf Windows laufen lassen zu können ? (eventuell mit WSL oder Ähnlichem?)Bei mir läuft iobroker nämlich auf Windows Server.
Falls das nicht gehen sollte, welches Linux würde ich denn da brauchen, bzw. wäre denn da zu empfehlen ? Ubuntu ?
-
@Qlink sagte:
Linux Server dafür brauche richtig ?
Es sind C Quellprogramme für gcc. Ein gcc für Windows sollte es auch packen.
-
d.h. ich kann gcc für Windows auf meinem Windows Server installieren und danach kann ich mich an die wiki Anleitung zum installieren halten:
Get a copy of the repo using git. sudo apt-get install git cd ~ mkdir software cd software git clone https://github.com/sfeakes/AqualinkD.git There is a chance the pre-compiled binary will run, try to run it with :- sudo ~/software/AqualinkD/release/aqualinkd -d -c ~/software/AqualinkD/release/aqualinkd.conf If it runs but gives you errors, this is good, you can simply install and configure. sudo ~/software/AqualinkD/release/install.sh Go to configure section AqualinkD service configuration If it faild to run with some form of error on the binary file, you'll need to build a new one. cd ~/software/AqualinkD make clean make sudo make install Go to configure section AqualinkD service configuration edit /etc/aqualinkd.conf to your setup Test every works :- sudo aqualinkd -d -c /etc/aqualinkd.conf point a web browser to the IP of the box running aqualinkd If all is good enable as service sudo systemctl start aqualinkd
Die Linux Befehle funktionieren dann im cmd Fenster?
-
@Qlink sagte:
Die Linux Befehle funktionieren dann im cmd Fenster?
Nein, Du wirst Dich schon ein wenig in die Handhabung von MinGW einlesen müssen.
Wenn ich mir das Wiki zu AqualinkD anschaue, ist es wohl besser, dass Du Dir einen Raspberry Pi zulegst.
-
@qlink Hi, hast du das projekt umgesetzt? Würde mich auch interessieren dieser Adapter zu verwenden. Wenn ja lass mich bitte wissen für welche Variante du dich entschieden hast und wie du zufrieden bist. vG Etze
-
Hab den Adapter hier herumliegen, da ich das Projekt nach hinten verschoben habe...
Eventuell schaffe ich es ja dieses Jahr... hat aber nicht so die Priorität für mich.
Ich tendiere aber zu der Raspberry Variante.Beste Grüße
-
@qlink Danke fürs Feedback. Hab mir auch den Adapter auf Github angesehen, bin mir aber nicht ganz im klaren ob die RasPi Variante geeignet ist um die "Zodiac eXO iQ LS" in den IOBroker zu integrieren... Bin grade dabei die Technik für den geplanten Pool auszusuchen, und da wäre schön zu wissen ob das auch funktioniert. Hast du das schon getestet ob es auch für die "kleinen" Steuerungen geht oder nur für die großen Schaltboxen?
Generell wäre es per MQTT sicher relativ einfach einzubinden... -
Habe letztes Jahr ein Zodiac EXO IQ LS verbaut - hat mich einfach geärgert, das die iAquaLink App einwandfrei funktioniert aber ich die Werte nicht in meinem HomeKit habe.
Das Projekt: https://github.com/sfeakes/AqualinkD scheint mir zu aufwendig wg. dem direkten IO Interface RS485 am Zodiac.
Es gibt einen Web-API, deren Doku ich nicht gefunden habe, konnte aber die Server+URL tcpdumpen mit Hilfe der APP.
Nach zwei Tagen habe ich es nun endlich geschafft, Zodiacs iAquaLink Info zu meinem EXO via HTTPS durch javascript auszulesen und im IOBrocker via Yahka in meine EVE App zu bringen.
Leider scheint das nicht richtig zu funktionieren den PH und ORP Wert samt Einheit ins HomeKit zu bringen, das gibt es anscheindend keine passenden Templates.
-
Hi @stealthdux, danke für deine Info. Ich bin auch schon eine Weile dran, zu versuchen, die EXO zu integrieren.
Kannst du bitte deinen JavaScript Code sharen? Das wäre genial!
Vielen Dank und viele Grüße!
-
Zodiac EXO iQ Account direkt vom Hersteller HTTPS API page auslesen und via Iobroker javascript an Yahka an EVE übergeben.
// Parameter var server = 'prod.zodiac-io.com'; // Zodiac Server var id = 'JT20xxxxxxxx'; // S/N of Zodiac EXO IQ LS var email = 'a.b@c.de'; var password = 'xxxxxxxxxx'; var api_key = 'EOOEMOW4YR6QNB11'; //var api_key = 'EOOEMOW4YR6QNB07'; // https://discourse.nodered.org/t/iaqualink-for-pool-equipment/29689 // Global createState("iAquaLink.Pool.Temperatur", {name: 'Pool Temperatur', unit: '°C'}); createState("iAquaLink.Pool.PH", {name: 'Pool PH', unit: ''}); createState("iAquaLink.Pool.ORP",{name: 'Redox ORP', unit: 'mV'}); createState("iAquaLink.EXO.RSSI",{name: 'EXO WiFi Signal', unit: 'db'}); function iAquaLinkLoop () { var body_sent = JSON.stringify( { 'api_key': api_key, 'email': email, 'password': password }); var al_headers = { 'Content-Type': 'application/json', 'accept': 'application/json', 'user-agent': 'okhttp/3.12.0', 'Host': server, //'accept-encoding': 'gzip' }; // Authenticate and get IdToken var request = require('request'); var optionspost = { url: 'https://' + server + '/users/v1/login', method: 'POST', //minVersion: 'TLSv1', //maxVersion: 'TLSv1.2', headers: al_headers, form: body_sent }; //log('Start Logging Server: ' + server); request(optionspost,function (error, response, body){ //log('Request Status: ' + response.statusCode); var obj = JSON.parse(body); var token = obj.userPoolOAuth.IdToken; //log(response.statusCode + ' Token: '+ obj.userPoolOAuth.IdToken); // Get Values from iAquaLink var getrequest = require('request'); var optionsget = { url: 'https://' + server + '/devices/v1/' + id + '/shadow', method: 'GET', headers: { al_headers, 'Authorization': token } }; getrequest(optionsget,function (error, response, body){ log('Code_statusCode: ' + response.statusCode); const obj = JSON.parse(body); var pool_temp = obj.state.reported.equipment.swc_0.sns_3.value; var pool_orp = obj.state.reported.equipment.swc_0.sns_2.value; var pool_ph = (obj.state.reported.equipment.swc_0.sns_1.value)/10; var exo_rssi = obj.state.reported.debug.RSSI; setState("iAquaLink.Pool.Temperatur", pool_temp); setState("iAquaLink.Pool.ORP", pool_orp); setState("iAquaLink.Pool.PH", pool_ph); setState("iAquaLink.EXO.RSSI", exo_rssi); log('PoolTemperatur common: '+ pool_temp + ' PH: ' + pool_ph + ' ORP: '+ pool_orp ); }) }); } schedule("*/5 * * * *", iAquaLinkLoop); // CRONJob
-
Hallo @stealthdux,
ich bin auch schon länger dran meine EXO abzufragen.
Ich hätte gerne deinen Code benutzt, bekomme aber keine Antwort.
Im Log steht:
javascript.2 2023-04-26 13:55:01.378 error Error in request callback: TypeError: Cannot read properties of undefined (reading 'IdToken')
javascript.2 2023-04-26 13:55:00.019 info script.js.common.z_Test.Zodiac_EXO: Start Logging Server: prod.zodiac-io.com
javascript.2 2023-04-26 13:54:11.162 info script.js.common.z_Test.Zodiac_EXO: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
javascript.2 2023-04-26 13:54:11.162 info script.js.common.z_Test.Zodiac_EXO: schedule(cron=*/5 * * * *)
javascript.2 2023-04-26 13:54:11.158 info Start javascript script.js.common.z_Test.Zodiac_EXOdie "var" habe ich mit meinen Daten befüllt, den "IDToken" erhalte ich doch sicherlich durch die Abfrage mit meinen Daten? Wie kann ich die Abfrage testen?
Vielen Dank im Voraus. -
@arteck sagte in Aqualink Pool Automation in iobroker integrieren:
das ding kann mqtt .. also sollte relativ einfach sein die Datenpunkte abzugreifen..
API hats auch..
kurz und knapp : sollte gehenHallo Arteck!
Sorry, dass ich diesen doch sehr alten Thread benutze.
Wir haben nun auch eine Zodiac Anlage und würden gerne die Werte in ioB bringen.
Bei dem Script weiter unten komm ich nicht weiter, da wir keine ID (SN) nutzen können.
Über die App bin ich mit dem Zodiac-Server verbunden und sehe da Temperatur, pH und ORP.
Zusätzlich ist es noch möglich die Chlor-Produktion zu steuern (Aus/Normal/Boost).Du meintest, dass es mit mqtt sehr einfach gehen sollte.
Könntest du mir dabei behilflich sein?
Wie richte ich die Anlage im mqtt-Adapter ein, usw.Danke
-
@negalein sagte in Aqualink Pool Automation in iobroker integrieren:
Könntest du mir dabei behilflich sein?
währe dann bei mir Jugend forscht..
-
@arteck sagte in Aqualink Pool Automation in iobroker integrieren:
währe dann bei mir Jugend forscht..
Ah ok, ich dachte du hast auch eine Zodiac-Anlage.
Werde mal weitersuchen.
Merci -
@negalein sagte in Aqualink Pool Automation in iobroker integrieren:
Ah ok, ich dachte du hast auch eine Zodiac-Anlage.
nee leider nein.. sry