Vistapool // Pool-Steuerung über IPS

Hello ,
Hab mir gerade ein USR-TCP Modbus über die Splitter instanz eingebunden.
Leider weiss ich jetzt nicht mehr weiter. Hat schon jemand ein nettes Skript gebastelt, um seine Pooldaten anzeigen zu lassen?

Ich kam endlich mal dazu mir die neue Vistapool-Webseite anzuschauen. Die haben ALLES komplett umgebaut :roll_eyes:

Die liegen jetzt bei Google in der Cloud und man darf sich mit Google Firebase rumschlagen. Theoretisch gibt es dafür ein Client SDK … aber das ist ein ordentlicher Aufwand.
Dafür habe ich momentan weder Zeit noch Nerven. Grad wenn man die Google APIs kennt, die ändern sich gerne mal und dann hat man eine never ending story :-1: Google und ich sind keine Freunde :smiley:

Ich habe aber sowohl hier, als auch an anderer Stelle, immer wieder von der Modbus Schnittstelle gelesen - auch sollen die Dinger Telnet sprechen?! Wären das keine Alternativen für euch? Lokal ist doch eh viel besser als über die Cloud…

Und falls es jemand hilft - hinter all dem Zeug scheint wohl die Firma „Hayward“ zu stecken. Aber ob die irgendwie hilfreich sind … fraglich.

Viele Grüße,
Chris (der euch gerne bessere Neuigkeiten überbracht hätte)

Servus Chris,

Da hast du recht, Google muss nicht sein und auch die Aussage „lokal ist besser“ kann ich voll unterschreiben!
Ich werde mein Glück mal über ModBus versuchen.

Ich danke dir trotz für uns nicht so glücklichem Ergebnis dass du dir die Zeit genommen hast und dir das angeschaut hast!

Jetzt fällt die Entscheidung leichter sich um die lokale Anbindung zu kümmern und das ist ja auch eine große Hilfe.

Gruß Isi

Hallo Zusammen,

falls jemand beispielsweise die Relais über Modbus schalten möchte, kann ich hier kurz etwas Hilfestellung geben:


Möchte man nur die Beleuchtung (Relais 3) einschalten:

$MBF_SET_MANUAL_CTRL = <ID von der Instanz des Modbus Device für MBF_SET_MANUAL_CTRL>
$MBF_RELAY_STATE = <ID von der Instanz des Modbus Device für MBF_RELAY_STATE>
$MBF_EXEC = <ID von der Instanz des Modbus Device für MBF_EXEC>

ModBus_WriteRegisterWord($MBF_SET_MANUAL_CTRL, 1); // versetzt die Anlage in den manuellen Modus um Befehle per Modbus zu akzeptieren
ModBus_WriteRegister($MBF_RELAY_STATE, 4); // schaltet Relais
ModBus_WriteRegisterWord($MBF_EXEC, 1); // zwingt die Anlage die Eingabe zu übernehmen

Zum ausschalten der Beleuchtung einfach die Zeile

ModBus_WriteRegister($MBF_RELAY_STATE, 4);

gegen folgende austauschen:

ModBus_WriteRegister($MBF_RELAY_STATE, 0);

Hinweis: Die übergebene 0 schaltet alle Relais aus. Ebenso schaltet die übergebene 4 beim einschalten nur das Relais 3 ein und alle anderen aus.

Warum ist das so ?
In der Übergabe muss immer der Status aller Relais übergeben werden welche eingeschaltet werden oder bleiben sollen. Im Hintergrund wird eine Bitmaskierung gemacht. Somit wird nur das Bit beim schalten berücksichtigt, welches auf 1 gesetzt / übergeben wurde.

Ein weiteres Beispiel dazu:
Möchte man nun die Pumpe, welche auf Relais 2 angeschlossen ist, beim Einschalten von der Beleuchtung ebenfalls weiter laufen lassen, übergibt man als Parameter anstelle der 4 eine 6.

Wo kommt denn die 6 aufeinmal her ?
Generell gelten folgende Wertigkeiten für die jeweiligen Bits welche die Relais repräsentieren:
Relais 1 ist Bit 1 Wertigkeit 1
Relais 2 ist Bit 2 Wertigkeit 2
Relais 3 ist Bit 3 Wertigkeit 4
Relais 4 ist Bit 4 Wertigkeit 8
Relais 5 ist Bit 5 Wertigkeit 16
… usw.

Somit ergibt sich für Relais 2 und Relais 3 als Wertigkeit 2+4=6, welches als Parameter übergeben werden muss um diese beiden Relais eingeschaltet zu lassen. Alle anderen Relais wurden nicht mitgegeben (nicht maskiert) und werden ausgeschaltet.

Bleiben wir noch kurz beim Beispiel der Pumpe
Was muss übergeben werden, wenn man nur die Beleuchtung aber nicht die Pumpe ausschalten möchte ? Ihr habt richtig geraten, eine 2.


Wer etwas C lesen und verstehen kann, findet in diesem Projekt viele Infos zu den Multiregistern und dessen Auflösung. Außerdem auch eine kurze Beschreibung der einzelnen Register auf Englisch:

Ebenfalls lesenswert wenn es um Probleme / Details bei dem Anschluss der Anlage (von Bayrol, Sugar Valley und wie sie alle heißen) an Modbus geht:

An dieser Stelle geht ein dicker Dank an @Christian79 und @Helmut für die Hilfestellung per PN zur Lösung dieses Problems raus.

Ich hoffe, ich konnte dieses Thema etwas beleuchten und dem Einen oder dem Anderen für die Zukunft weiterhelfen!

Bitte macht euch, bevor ihr irgendetwas ausprobiert, gut mit eurer Anlage vertraut! Nicht damit ihr ausversehen irgendetwas schaltet was ihr gar nicht möchtet, und im Worst-Case irgendetwas kaputt macht. Ich übernehme selbstverständlich keine Haftung :wink:

P.S. das ganze Skript drum rum, müsst ihr euch natürlich selbst bauen. Eventuell hat auch jemand Lust und Zeit das mal in ein Modul für alle zu kippen. Mir fehlt leider beides aktuell, sonst hätte ich es gemacht.

Grüße
Daniel

Wo genau schliesst du den Modbus an und welcher Konverter verwendest du?

Modbus-Konverter wird an Wifi angeschlossen. Extern geht auch, muss aber dann in der Anlage „freigeschaltet“ werden.

Die Pinbelegung von Oben nach Unten ist:
frei
frei
A
B
G

Als Konverter habe ich folgenden gekauft, geht aber vermutlich auch jeder andere:
USR-W630 Industrial Serial-to-WiFi- und Ethernet-Konverter

Ansonsten schau in den Thread auf Poolpowershop, da findest du weitere Informationen samt Bildern von anderen Usern.

Hallo dansch,

danke für die tollen Infos!
Könntest du mal versuchen die Solltemperatur bei dir zu setzen?
Das ist die Adresse 1046. Ich komme da nicht zurecht. Ich kann zwar lesen und schreiben, aber die Werte passen nicht bei mir.

Danke und Gruß Isi

Kann ich machen, habe aber (noch) keine Heizung installiert.

Die Solltemperatur lese ich dann direkt an der Anlage ab, und die passt dann nicht mit der übergebenen überein, habe ich das richtig verstanden ?

Ja, genau

Danke fürs Testen

Hallo, ich habe eine neue Sugar Valley Poolsteuerung.

Wer kann mir sagen, welche Relais für die Pumpe und das Licht benötigt werden.

Bezeichnung?

Licht und Pumpe geht über die Adresse 270 Lesend und Schreibend (MBF_RELAY_STATE).

Licht ist 0x0004. Meine Pumpe steuere ich nicht darüber.

Du musst dir da nen bisschen Logik drum rum bauen (s.o.)

Hallo Leute,

funktionier bei euch die Poolsteuerung?

lg
Christian

Hallo,
kann ich dem Gerät eine Temperatur über Modbus vorgeben?
ansonsten müsste ich einen weiteren Temp. Fühler installieren.
Gruß,
Stefan