Eigenen Regler implementieren

Alles was mit der Solaranzeige technisch zu tun hat. Einfache Konfiguration mit einem Gerät

Moderator: Ulrich

seldor
Beiträge: 10
Registriert: Do 12. Mär 2020, 16:35

Eigenen Regler implementieren

Beitrag von seldor »

Hoi Ulrich

Erstmal vielen, vielen Dank für das super coole Tool!
Ich habe es im Nu mit meinen beiden WRs integriert. Nun möchte ich aber auch noch meine SmartFox-Steuerung anzapfen, da ich diese verwende, um 2 Relais anzusteuern. Das auslesen der Relais-Zustände ist recht einfach (GET http://smartfox/values.xml) und das auslesen der Relais-Stände aus dem XML ist auch trivial.
Leider ist aber die Einbindung meines Scripts nicht ganz trivial, denn ich muss an zwei Orten tief in deine Scripts eingreifen:
1. $Regler: Die Liste der Regler ist hardcoded in multi_regler_auslesen.php (in meinem Fall mit 2 WRs), ich musste also dort eine Zeile einfügen, die beim nächsten Update flöten geht
2. Influx Query: Dies ist noch etwas mühsamer, denn aus den rohen $aktuelleDaten-arrays werden die effektiv zu speichernden Daten tief in funktionen.inc.php extrahiert, weit weg von der Logik, die sie reinschreibt. Natürlich kann ich das umgehen, indem ich meinen eigenen influx-code schreibe, was aber auch nicht so wirklich Sinn der Sache ist.

Folgende Vorschläge:
1. Wenn $Regler etwas enthält, das die hardcodete Liste nicht auswerten kann, könntest du ja ganz einfach schauen, ob es zb ein custom_$Regler.php gibt und wenn ja, dieses aufrufen.
2. Wo in funktionen.inc.php die query zusammengebastelt wird, könntest du schauen, ob es im daten-array bereits ein Element 'InfluxQuery' oder so gibt und dann diese Query fix verwenden.

So könnte man recht elegant eigene Auslese-Scripts bauen, die auch bei updates sicher wären.

Gruess Matti

Benutzeravatar
Ulrich
Administrator
Beiträge: 2180
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 5 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Eigenen Regler implementieren

Beitrag von Ulrich »

Hallo Matti,

wenn das alles zu einfach wäre....
Wenn ich so etwas machen würde, bringen mich die Support Anfragen um.

Ich gehe davon aus, dass du den Smartfox Pro Energiemanager meinst. Hast Du die Protokoll Beschreibung, wie man das Gerät auslesen und steuern kann? So wie ich es sehe, kann man die Relais auch von Außen steuern. Ich muss mich aber erst einmal etwas schlau machen.

Es gibt 2 Möglichkeiten der Integration.

a) Wenn ich die komplette Protokoll Beschreibung bekomme, könnte wir das Gerät offiziell einbinden.
b) Man kann selber eine Routine schreiben, die minütlich aufgerufen wird und ganz eigenständig die Daten in die Influx Datenbank schreibt.

Eine "halbfertige" Integration geht nicht, da ja noch mehr als nur das Einstellen der Daten in die Influx Datenbank damit zusammenhängt. Es muss ja auch die HomeMatic, Pushover, MQTT usw. Anbindung funktionieren. Deshalb kann die Lösung nur eine vollständige Integration oder eine komplette selbständige "User Intergration" sein.
--------------------------------------
Ulrich [Admin]

seldor
Beiträge: 10
Registriert: Do 12. Mär 2020, 16:35

Re: Eigenen Regler implementieren

Beitrag von seldor »

Hallo Ulrich
Danke für deine Einschätzung, dann wähle ich für mich wohl vorerst Variante 3: Ich hab meine eigene Integration geschrieben, die halt nicht update-safe ist... Aber vielleicht schreibe ich sie tatsächlich mal noch unabhängig von den solaranzeigen-scripts um.
HomeMatic, MQTT etc verwende ich nicht, kann daher nicht viel dazu sagen, aber ich verstehe dich, dass der Support eines solchen Halbproduktes für dich sehr anstrengend sein könnte...
Zu Smartfox habe ich bisher leider nirgends eine offizielle Doku gefunden. Ich habe es mehr reverse-engineered aus der eigenen weboberfläche, wo man eben ein values.xml runterladen kann, welches alles zu enthalten scheint, wenn auch grösstenteils unter sehr kryptischen Schlüsseln, von denen ich nicht weiss, ob die fix sind oder nicht.
Sehe auch, dass Port 502 offen wäre, kenne mich aber mit modbus nicht aus - kann man hier einfach ermitteln, welche register er anbietet?

Ja, die Relais kann man ebenfalls ansteuern, zb GET http://smartfox/setswrel.cgi?rel=2&state=1 setzt Relais 2 auf manuell ein, state=0 zurück auf automatik
Kann dir gern mal das values.xml von mir schicken wenn dus dir anschauen willst, vermutlich müsste man es aber mit noch einzwei anderen Anwendern vergleichen bevor man sagen kann, ob die Werte darin fix sind (würde es zwar vermuten, aber garantiert ist es nicht). Oder sonst kannst du mir gerne sagen, was ich modbus-technisch machen müsste, um eine Auflistung zu erhalten...

Gruess Matti

Benutzeravatar
Ulrich
Administrator
Beiträge: 2180
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 5 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Eigenen Regler implementieren

Beitrag von Ulrich »

Ich versuche es einmal direkt beim Hersteller. Vielleicht ist er ja kooperativ.
--------------------------------------
Ulrich [Admin]

seldor
Beiträge: 10
Registriert: Do 12. Mär 2020, 16:35

Re: Eigenen Regler implementieren

Beitrag von seldor »

Super, danke!
Helfe dir sonst dann gern bei der Integration, soweit das mein setup her gibt. Habe 2 WRs und den SmartFox Meter angeschlossen (der kann 5 zusätzliche S0 Eingänge auswerten) sowie 2 Relais in Betrieb.
Gruess Matti

dsossna
Beiträge: 1
Registriert: Mi 13. Jan 2021, 12:00

Re: Eigenen Regler implementieren

Beitrag von dsossna »

Hallo zusammen,

ich betreibe als Hausautomation derzeit fhem. Dort gibt es Module, wo man zum Beispiel Fronius Modbus auslesen kann. Da ich jetzt den Smartfox Pro habe der den Wechselrichter und die Batterie von Fronius per Modbus auslesen kann, musste ich das Auslesen in fhem per Modbus abschalten, weil immer nur ein Gerät den Modbus auslesen darf. Der Pro hat jetzt selber Modbus over TCP port 502. Hier ist der Link zur Protokoll doku. http://www.smartfox.at/download/Anleitu ... 20V16E.xls
Wahrscheinlich kann man damtit noch mehr Daten als nur die Relais auslesen un steuern.
Vielleicht hilft das weiter.

GOETSCHHOFER
Beiträge: 5
Registriert: So 14. Feb 2021, 18:13

Re: Eigenen Regler implementieren

Beitrag von GOETSCHHOFER »

Hallo dsossna,

woher hast du denn die Info, dass nur ein Regler den Smartfox Pro auslesen darf und warum ? -:)

Danke für die Info.

LG


Karl

GOETSCHHOFER
Beiträge: 5
Registriert: So 14. Feb 2021, 18:13

Re: Eigenen Regler implementieren

Beitrag von GOETSCHHOFER »

seldor hat geschrieben:
So 17. Mai 2020, 23:24
Hallo Ulrich
Danke für deine Einschätzung, dann wähle ich für mich wohl vorerst Variante 3: Ich hab meine eigene Integration geschrieben, die halt nicht update-safe ist... Aber vielleicht schreibe ich sie tatsächlich mal noch unabhängig von den solaranzeigen-scripts um.
HomeMatic, MQTT etc verwende ich nicht, kann daher nicht viel dazu sagen, aber ich verstehe dich, dass der Support eines solchen Halbproduktes für dich sehr anstrengend sein könnte...
Zu Smartfox habe ich bisher leider nirgends eine offizielle Doku gefunden. Ich habe es mehr reverse-engineered aus der eigenen weboberfläche, wo man eben ein values.xml runterladen kann, welches alles zu enthalten scheint, wenn auch grösstenteils unter sehr kryptischen Schlüsseln, von denen ich nicht weiss, ob die fix sind oder nicht.
Sehe auch, dass Port 502 offen wäre, kenne mich aber mit modbus nicht aus - kann man hier einfach ermitteln, welche register er anbietet?

Ja, die Relais kann man ebenfalls ansteuern, zb GET http://smartfox/setswrel.cgi?rel=2&state=1 setzt Relais 2 auf manuell ein, state=0 zurück auf automatik
Kann dir gern mal das values.xml von mir schicken wenn dus dir anschauen willst, vermutlich müsste man es aber mit noch einzwei anderen Anwendern vergleichen bevor man sagen kann, ob die Werte darin fix sind (würde es zwar vermuten, aber garantiert ist es nicht). Oder sonst kannst du mir gerne sagen, was ich modbus-technisch machen müsste, um eine Auflistung zu erhalten...

Gruess Matti
Hallo Ulrich,

da ich selbt seit über einem Jahr einen Smartfox Pro im Einsatz habe, würde mich die direkte Ansteuerung der Relais über GET interessieren.
Könntest du mir hier einige Infos dazu geben ?

Danke im Voraus.


LG

Karl

seldor
Beiträge: 10
Registriert: Do 12. Mär 2020, 16:35

Re: Eigenen Regler implementieren

Beitrag von seldor »

Hi Karl
Eigentlich steht schon so gut wie alles im Beitrag was die Steuerung direkt angeht. Ich habe mir ein paar python-scripts gebaut die die aktuelle Leistung, Einspeisung, Batterieladung etc anschauen und dann je nach dem das eine (Boiler) oder andere (Heizung) Relais aktivieren/deaktivieren.
Letzteres geschieht ganz einfach durch einen Aufruf aus dem Script auf die IP meines smartfoxes via http://<ip>/setswrel.cgi?rel=2&state=1
rel=2 bedeutet hier: Zweites Relais
state=1 bedeutet hier: Einschalten. Aussschalten wäre state=0

Das auslesen des aktuellen Relaiszustandes habe ich in die solaranzeige 'reingehackt' indem ich meinen eigenen 'regler' implementiert habe dafür, das bedingt leider einige tiefergreifende Anpassungen an den ausgelieferten scripts.
Letztendlich aber lade ich http://<ip>/values.xml und suche darin per xpath nach "//value[@id='hidR1Mode'][1]" (für Relais 1; für die anderen Relais sinngemäss zB hidR2Mode verwenden (das [1] dahinter aber belassen!). Dort steht dann entweder "0" (aus), "1" (ein) oder "m" (manuell) drin.

Das wärs dann eigentlich schon - die Logik für deine Anforderungen musst du natürlich selbst bauen, oder alternativ kannst du dir im dashboard natürlich auch buttons hinterlegen die einfach auf diese URLs zeigen, womit du dann schnell ein Relais aktivieren/deaktivieren kannst.
Gruess Matti

GOETSCHHOFER
Beiträge: 5
Registriert: So 14. Feb 2021, 18:13

Re: Eigenen Regler implementieren

Beitrag von GOETSCHHOFER »

ANALOGAUSGANG EIN-AUS-SCHALTEN_17.2.2021.JPG
Hallo Matti,

danke für die Rückinfo und nochmalige detaillierte Erläuterung.

Das mit den Relais schalten ist mir klar.
Kannst du damit auch den Analogausgang ein- und ausschalten ?

Wie müsste hier der Befehl lauten ?

Danke

Sonnige Grüße


Karl

Antworten