Ansteuerung SolvisMax/Solvis-Remote

Begonnen von IBirner, 12 Oktober 2014, 21:28:25

Vorheriges Thema - Nächstes Thema

SCMP77

Hallo,

ich hatte doch noch einen Bug drin, der dann auftritt, wenn man nioch mit dem alten base.xml arbeitet.

Auf GitHub liegt unter folgendem Link die gefixte Version:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.02.06--3-heating-circuits-beta

Allgemeine Frage Besitzern von einem System mit WW-Ringleitung:Aktuell überlege ich, ob man sicherheitshalber die Einstellung der WW-Temperatur bei laufendem Wasser (erkennbar durch WW-Pumpe) blockieren sollte.
Aktuelle denke ich daran, dass erst eine bestimmte Zeit nach der letzten WW-Entnahme dann diese Temperaturumstellung vorgenommen wird. Vielleicht bringe ich das in eine der nächsten Versionen rein (als Feature).

Bei Systemen mit einer Ringleitung wäre das jedoch schwierig, dort wird man das Feature vermutlich nicht einschalten können.
Oder gibt es dort bestimmte Kriterien?
Läuft dort die WW-Pumpe auch nur selten, so dass man sie ebenfalls als Kriterium nutzen kann?


Viele Grüße und viel Erfolg

   Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:


  • Bei Control-Channels, welche mittels Fließkomma-Werten gesetzt werden, funktionierte der Update des Clients sowohl über die Mqtt- als auch Server-Client-Schnittstelle nicht zuverlässig.
  • HTTP Proxy für Mail-Versand nun möglich.

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.02.07--3-heating-circuits-beta

Es reicht unter Linux ein "sudo make update",  unter Windows ein drüber installieren und neu starten um die Version zu aktualisieren.

Eine Anpassung des base.xml-Files gegenüber der V01.02.04 ist nicht erforderlich.


Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

#122
Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:


  • Der Service-Mode wurde nicht immer aktiviert, wenn die SolvisRemote eingeschaltet blieb und das System selbst ausgeschaltet war (mit aktivierter PowerOffIsServiceAccess-Funktion).

  • Neuer Befehl "SelectScreen" implementiert. Hiermit kann man einen bestimmten Bildschirm auswählen, der (entweder manuell oder über Server) immer am Ende eines Zugriffs angefahren wird.

  • Die Ein-/Ausschaltzeiten der Geräte (Brenner/Pumpen) wurden beim Neustart fälschlicherweise auf die weniger genauen Zeiten der GUI eingestellt.

  • Für die Abhängigkeiten ist eine Priorisierung in der Ausführungssequenz erforderlich.

  • Inkonsistenzen in den Diagrammen behoben

  • Einige andere Korrekturen.

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.02.08--3-heating-circuits-beta

Es reicht unter Linux ein "sudo make update",  unter Windows ein drüber installieren und neu starten um die Version zu aktualisieren.

Anschließend sollte man noch FHEM neustarten, da das FHEM-Modul ebenfalls geändert wurde.

Eine Anpassung des base.xml-Files gegenüber der V01.02.07 ist nicht erforderlich.


Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

Andi196612

Hallo, ich versuche verzweifelt, über Python an die Logfiles meines Solvis Ben mit SC3 zu gelangen.

Manuell kann ich diese über mein lokales Netzwerk unter "Logging" aus der HTML Seite unter http:/192.etc/index.html abfragen (zB eine Datei "mi210118.txt").

Ich möchte das aber über Python automatisieren.

Kann mir irgendjemand hier einen Hinweis geben, wie da ran komme ?

Bislang scheitere ich mit der Meldung "401 Unauthorized: Password required", obwohl ich mit
http://user:pwd@192.168.178.60 oder auth=('user','pwd') authentifiziere

y = requests.get ==> wie lautet hier der entsprechende Befehl ??????

Vielen vielen Dank !

SCMP77

Hallo Andi196612,

Zitat von: Andi196612 am 18 Januar 2021, 21:50:32
Bislang scheitere ich mit der Meldung "401 Unauthorized: Password required", obwohl ich mit
http://user:pwd@192.168.178.60 oder auth=('user','pwd') authentifiziere

y = requests.get ==> wie lautet hier der entsprechende Befehl ??????

ich kann Dir nicht weiter helfen, weil meine  Python-Kenntnisse viel zu rudimentär sind und auch 11 Jahre alt.

Trotzdem weiß ich aus meinem SolvisServer-Programm, dass die Methode über "http://user:pwd@192.168.178.60" nicht geht. Unter Java verwende ich dazu das PasswordAuthentication-Objekt.

Mal aus Stack Overflow kopiert:

import requests

r = requests.get('http://user:pwd@192.168.178.60', auth=('user','pwd'))
print(r.text)


Bei dem Druck auf den Logging-Button der Solvis-Seite wird ein kleines JavaScript-Methode ausgeführt. Das müsstest Du vermutlich nachbilden.

Vieel Grüße
    Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:


  • Unit-Ttypen "SolvisMax6" und "SolvisMax7" hinzugefügt.

  • Die ScreenSaver-Erkennung fixed.

  • XML-Bug der MustBeWhite-Abschnitte behoben.

  • Für den Befehl SelectScreen können nur Bildschirme ausgewählt werden, bei denen das Attribut "noRestore" nicht definiert ist.

  • Über den Befehl SelectScreen darf man nur Bildschirme auswählen, deren Attribut "noRestore" nicht definiert ist.

  • FHEM-Modul: Die Protokollausgabe im Falle eines Befehlsfehlers enthält jetzt die Fehlerbeschreibung.

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.02.09--3-heating-circuits-beta

Es reicht unter Linux ein "sudo make update",  unter Windows ein drüber installieren und neu starten um die Version zu aktualisieren.

Anschließend sollte man noch FHEM neustarten, da das FHEM-Modul ebenfalls geändert wurde.

Eine Anpassung des base.xml-Files gegenüber der V01.02.08 ist nicht erforderlich.


Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

Andi196612

Hallo, erstmal Danke für Euren Input.
Nach etwas try&error habe ich herausgefunden, daß es an der Authentifizierung liegt. Solvis kann offenbar mit der Standard-Auth nichts anfangen und benötigt eine HTTPDigestAuth.
Das Ganze sieht dann so aus:


from requests.auth import HTTPDigestAuth

r=requests.get('http://192.168.178.60/SC3_MA7/log/mi201214.txt', auth=HTTPDigestAuth('user', 'pwd'))

print(r.status_code)
print(r)
print(r.content)



Damit erhalte ich als Antwort die Datei - und vorangesetzt das Javascript File über das normalerweise die Datei heruntergeladen wird.

Also noch nicht optimal, aber ein Anfang ist gemacht.

Nächster Schritt ist dann das reverse-engineering des Javascript files.

Andi196612

So, Zeit was ans Forum zurückzugeben. Anbei ein Python Script, was automatisch alle Minutefiles der Solvis SC3 herunterlädt. Dateien die schon geladen sind, werden ausgespart => das spart viel an Zeit wenn man bereits etliche Files auf der Solvis liegen hat.
Viel Spaß damit !



# -*- coding: utf-8 -*-
"""
# 2021-02-01--21-36-01-import-from-solvis.py

Importiert alle auf der lokalen Heizungsanlage liegenden mi* files.

Liest die dir.txt auf dem Webserver und bearbeitet sie etwas bis sie clean ist

Liest die im DownloadedDir Verzeichnis liegenden Dateien und cleaned sie

Lädt dann die neueste im imported liegende Datei nochmal (kann im Hintergrund auf Heizungsanlage aktualisiert worden sein)

# known issues: none

"""
############################################################################################################
# Verwende nicht diese Dateien (sind nicht relevant, da war die Uhr der Heizung falsch gestellt)
SkipFiles="mi19"
# Enthält die auf dem Server befindlichen Files
FilesServer=""
# Enthält die bereits heruntergeladenen Files
FilesDownloaded=""
# Unterverzeichnis wo die runtergeladenen Dateien stehen
DownloadedDir="downloadedfromsolvis"
# user
user="user"
# password
password="pass"
# IP Adresse und Fileverzeichnis
ipadress="http://192.168.178.60/"
logdir="SC3_MA7/log/"
dirtxt="dir.txt"
#
############################################################################################################



import os
import requests
from requests.auth import HTTPDigestAuth
import glob


#################################################################
# Liste der Serverfiles lesen
#################################################################
r=requests.get(ipadress+dirtxt, auth=HTTPDigestAuth(user, password))

# Lösche unnötiges aus der dir.txt
FilesServer=str(r.content)
FilesServer=FilesServer.replace("b","")
FilesServer=FilesServer.replace("'","")
FilesServer=FilesServer.split("\\r\\n")

# letztes Element enthält einen Leerstring, daher löschen
del FilesServer[-1]

# Fileliste nochmal zur Sicherheit sortieren
FilesServer.sort(reverse=False)

print("\nIn total "+str(len(FilesServer))+" files available\n")


# files die geskippt werden soll, skippen
# ("skipfiles")

# enthält temporär die um "skipfiles" reduziert liste
cleaned=[]

print("\nChecking for relevant files on Solvis:")
for f in FilesServer:
    if SkipFiles in f:
        # Skippen
        print("Skip file: ",f)
    else:
        #nehmen
        print("Take file: ",f)
        cleaned.append(f)
FilesServer=cleaned
print("\nFinal list of relevant files on Solvis:")
print(FilesServer)

#################################################################       
# Liste der "DownloadedFiles" erstellen
#################################################################       

# prüfe ob "DownloadedDir" existiert, wenn nicht: erzeuge es
if not os.path.exists(DownloadedDir):
    print("\nDir <"+DownloadedDir+"> not existing: creating")
    os.makedirs(DownloadedDir)

# erzeuge die Liste der verfügbaren Files
FilesDownloaded=glob.glob(DownloadedDir+"\mi*.txt")

cleaned=[]

for f in FilesDownloaded:
    f=f.replace(DownloadedDir+"\\","")
    cleaned.append(f)

FilesDownloaded=cleaned

print("\nList of already downloaded files in <"+DownloadedDir+">")
print(FilesDownloaded,"\n")


#################################################################       
# Noch nicht runtergeladene runterladen
#################################################################       

# lade das zuletzt geladene File noch einmal - könnte ein Update bekommen haben
if len(FilesDownloaded)!=0: # nur falls schon ein File drin ist
    last=FilesDownloaded[-1]
    print("Download for update: "+last+"\n")
    r=requests.get(ipadress+logdir+last, auth=HTTPDigestAuth(user, password))
    fo = open(DownloadedDir+"\\"+last, "wb")
    fo.write( r.content)
    fo.close()

# die noch nicht runtergeladenen downloaden
for f in FilesServer:
    if f in FilesDownloaded:
        print("Already downloaded : "+f)
    else:
        print("Downloading        : "+f)
        r=requests.get(ipadress+logdir+f, auth=HTTPDigestAuth(user, password))
        fo = open(DownloadedDir+"\\"+f, "wb")
        fo.write( r.content)
        fo.close()
   
print("\nDownloading finished")



SCMP77

Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:

  • Mit dem Tag "IgnordChannels" in der base.xml können die an den Client / Mqtt-Broker gesendeten Kanäle jetzt auf der Serverseite reduziert werden.

  • FHEM-Modul: Das Blockieren von FHEM beim Herstellen einer Verbindung wurde beseitigt.

  • Die Funktion "OnlyMeasurements" wurde durch "InteractiveGUIAccess" mit invertierter Logik ersetzt. Die Funktion "OnlyMeasurements" wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Sie sollte jedoch durch die Neue ersetzt werden.

  • EquipmentOnOff-Überwachungsfehler behoben

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.02.10--3-heating-circuits-beta

Es reicht unter Linux ein "sudo make update",  unter Windows ein drüber installieren und neu starten um die Version zu aktualisieren.

Anschließend sollte man noch FHEM neustarten, da das FHEM-Modul ebenfalls geändert wurde.

Eine Anpassung des base.xml-Files gegenüber der V01.02.09 ist nicht erforderlich. "OnlyMeasurements" sollte durch "InteractiveGUIAccess" ersetzt werden (invertierte Logik).

Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:


  • Neue Kanal-Zuordnungsschicht eingeführt, da sich die Unterschiede der verschiedenen Anlagenkonfiguration doch größer als erwartet waren.
  • Kanaldokumentation der aktuellen Konfiguration kann nun erstellt werden
  • MQTT-Schnittstelle verbessert
  • einige Bugs gefixt

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.03.00

Es sind Anpassungen im base.xml erforderlich, insbesondere was die Anlagendefinition betrifft. Die Konfiguration erfolgt nicht mehr über einen Bitmaske sondern im Klartext, z.B. SolvisMax6, Gas, Heizkreisanzahl, Feststoffkessel etc.. Die Beschreibung hierzu findet man in der Wiki.

Nach dem Anpassen der base.xml reicht unter Linux ein "sudo make update".

Unter Windows sollte der Server gestoppt werden, dann drüber installieren, danach die base.xml anpassen und dann den Server neu starten.

Viele Grüße
   Stefan

Anschließend sollte man noch FHEM neustarten, da das FHEM-Modul ebenfalls geändert wurde.
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

carmade

Hallo, habe einen SolvisMax mit Lea Wärmepumpe und SC3.
Möchte max. PV-Strom in die WP bringen, die SC3 bietet hier fast nichts, völlig unbrauchbar.
Gibt es für die SC3 auch eine Anbindung ?

SCMP77

Hallo carmade,

Zitat von: carmade am 26 Mai 2021, 13:13:08
Gibt es für die SC3 auch eine Anbindung ?

Leider nicht, da bei der SolvisControl3 es nicht mehr die Schnittstellen gibt, welche ich verwende.

Aber bei der SolvisControl 3 sollte es eigentlich auch ein Modbus-Interface geben, ich habe jetzt nur die Spezifikation für die neueren Versionen der SolvisControl 2 gefunden. Ich vermute aber, dass das auch für die SolvisControl 3 gelten müsste. Modbus ist so oder so der bessere Weg, da meine Lösung nur einen "Krücke" ist, die für bestimmte Kanäle kompliziert auf die grafische Oberfläche der SolvisControl gehen und dann mit Hilfe von OCR die Werte lesen/modifizieren muss. Der Modbus wäre auf jeden Fall die bessere Lösung.

https://solvis-files.s3.eu-central-1.amazonaws.com/seiten/produkte/solvisremote/Download/SolvisRemote+Modbus+Spezifikationen+201906.pdf

Ob man damit dann Dein PV-Problem lösen kann, kann ich nicht beurteilen.

Viele Grüße
   Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Version. Hier ein kurzer Überblick über die Änderungen:


  • WW-Nachheizen wird jetzt vom Server unterstützt (Screen Wasser: Taste Nachheizen 1x mit zugehörigem Symbol).
  • Learning verbessert : Wird beim Lernen des Modus erkannt, dass sich das Symbol nicht verändert hat, wartet der Server etwas länger auf die Reaktion des Touches.
  • Neues State-Reading Control mit den Zuständen finished, monitoring, rd_ongoing und wr_ongoing, welche Auskunft geben, ob der Server noch auf das Gui der SolvisControl zugreift.
  • DebugChannel-Befehl hinzugefügt. Auf diese Weise können gezielt Systemzustände simulieren werden, um die SmartHome-Systemanwendung zu debuggen, ohne das System selbst in den Zustand bringen zu müssen (was manchmal gar nicht möglich ist oder zu Energieverschwendung führt).

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.04.00

Es sind Anpassungen im base.xml erforderlich, falls man den MQTT-Tag darin enthalten ist.

Nach dem Anpassen der base.xml reicht unter Linux ein "sudo make update". FHEM ist anschließend neu zu starten, da sich die Version der Server-Client-Schnittstelle geändert hat und das Paket einen neuen FHEM-Client enthält.

Unter Windows sollte der Server gestoppt werden, dann drüber installieren, danach die base.xml anpassen und dann den Server neu starten.

Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Bugfix-Version. Folgende Änderungen sind erfolgt:


  • Bugfix: Server-Restart und Server-Terminate funktionierten sei 1.04. wegen eines RegEx-Fehlers nicht mehr.
  • Neuer Server-Command SERVICE_TRIGGER hinzugefügt. Er ist eine Alternative zu den Befehlen GUI_COMMANDS_ENABLE/DISABLE, mit dem Unterschied, dass bei dem neuen Befehl automatisch nach einer gewissen Zeit der SERVICE-Mode verlassen wird und damit GUI-Befehle wieder möglich sind.

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.04.01

Es sind keinerlei Anpassungen im base.xml erforderlich.

Unter Linux ein "sudo make update". FHEM ist anschließend neu zu starten, da die HTML-Doku erweitert wurde.

Unter Windows sollte der Server gestoppt werden, dann drüber installieren und danach ist der Server neu zu starten.

Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht

SCMP77

Hallo,

auf GitHub liegt eine neue Bugfix-Version. Folgende Änderung ist erfolgt:


  • Während der WW-Nachheizphase konnte über die FHEM-Web-Interface weder der Zustand der WW-Pumpe noch die WW-Temperatur geändert werden. Gefixt.

Die Version ist unter Github unter folgendem Link zu finden:

https://github.com/GollmerSt/SolvisSmartHomeServer/releases/tag/v01.04.02

Es sind keinerlei Anpassungen im base.xml erforderlich.

Unter Linux reicht ein "sudo make update".

Unter Windows sollte der Server gestoppt werden, dann drüber installieren und danach ist der Server neu zu starten.

Viele Grüße
     Stefan
Raspberry Pi 3 Model B mit Rasbian, SolvisMax, AVM DECT 200, Sonoff mit Tasmota geflasht