Alpha-Version 69_SoftliqCloud - Auslesen von Grünbeck Entkalkern (Cloud)

Begonnen von KernSani, 18 April 2020, 01:33:22

Vorheriges Thema - Nächstes Thema

KernSani

*** Das Modul ist im SVN eingecheckt und über das reguläre Update verfügbar. Weitere Diskussion bitte hier: https://forum.fhem.de/index.php/topic,119939.0.html ***

Hallo zusammen,

hat dann (wieder mal) länger gedauert als geplant... Ich habe eine erste Testversion eines Moduls fertiggestellt, um Grünbeck Entkalker der SD-Serie (Cloud-Anbindung) in FHEM einzubinden. Die angehängte Version läuft bei mir mit einem SD 18 und scheint stabil zu sein, ist aber sicher noch stark verbesserungswürdig. Mutige Tester und Feedback sind sehr willkommen.

Was kann das Ding?   
Es liest (aktuell fix im 1-Stunden-Takt defaultmäßig jede Stunde - steuerbar über Attribut) eine Unmenge von Werten des Entkalkers aus. Die Daten umfassen:
* Stammdaten zum Gerät (Geräte ID, Name, usw...)
* Aktuelle Daten, die man in der App auf der Startseite sieht (Verbrauch der letzten 3 Tage usw...)
* Alle Einstellungen
* Werte, die gestreamt werden, Regenerierungsstatus, aktueller Durchfluss und eine ganze Menge mehr, auch einige die ich in der App noch nicht gefunden habe.
* Parameter (Einstellungen) des Entkalkers ändern (ich habe das noch nicht vollständig getestet, aber es geht mindestens das, was in der App auch geht)
* Manuelle Regenerierung anstossen (Achtung - das geht ohne Warnung direkt los)


Was kann/hat das Ding noch nicht?
* Aktuell wird nur gelesen, in Zukunft werden auch Einstellungen geändert sowie die manuelle Regeneration getriggert werden können.
* Die Readings sind sehr unübersichtlich und bei vielen weiß ich garnicht was sie bedeuten. Da bin ich auf Input angewiesen, mir schwebt vor, dass die Readings 1. in Gruppen (basic, advanced, expert oder so) eingeteilt werden, über ein Attribut wäre dann auswählbar, welche Gruppen man sehen will und 2. sprechendere Namen für die Readings zu finden.
* Einstellbares Intervall zum Datenabruf
* Passwort verschlüsselt ablegen
* Commandref   
* elegantes Coding ;-)

Wie funktioniert es?
Die folgenden Libraries müssen vorhanden sein:
MIME::Base64::URLSafe
Digest::SHA
JSON::XSEine Perl JSON library
Protocol::WebSocket::Client

Achtung: Das Modul setzt auf der relativ neuen DevIo Websocket Funktionalität von FHEM auf, d.h. FHEM muss auf aktuellem Stand sein (ca. 07.06.2020)

dann
define <name> SoftliqCloud <loginName>

Danach ist das Passwort mit
set <name> password <password>
zu setzen,

Damit sollte das Ding loslaufen...

Get Befehle:
* authenticate: Braucht man im Normalfall nicht, beim Testen hatte ich allerdings Fälle, wo ich mich neu authorisieren musste
* query: holt alle Daten
* realtime: triggert das "streaming" (entspricht mehr oder weniger dem refresh Button in der App)
* salt/water: zeigt die Salz-/Wasser-Verbrauchshistorie an (vergleichbar mit einem Click auf die 3-Tages-Werte in der App). Ich habe den Entkalker erst seit Mitte März und bekomme die gesamte Hostorie, keine Ahnung wie das aussieht wenn der Entkalker schon länger in Betrieb ist)
* paramList: Zeigt die Einstellungen "schön" an

Set Befehle:
* regenerate: manuelle Regeneration (ohne Nachfrage - geht direkt los)
* param: erlaubt das setzen von Einstellungen (siehe paramList) in der Form
set meineSoftliq <parameterName> <parameterWert>
* refill: Auszuführen wenn Salz nachgefüllt wurde. Dadurch wird das Reading lastRefill mit dem aktuellen Wert des readings msaltusage gefüllt und regelmäßig der Salzverbrauch seit dem letzten Auffülen in saltUsageSinceRefill getrackt.
* password: EInmalig auszuführen, um das Passwort im sicheren Speicher zu setzen.

Änderungen:
25.03.2021: Anpassung an geänderte Grünbeck-API
07.05.: Set Refill, sicherere Passwort-Speicherung, Code Optimierungen
30.04.:
* Cleanup und besseres Errorhandling
* Attribut sq_duplex um bei Duplex-Maschinen auch die auf 2 endenden Readings zu bekommen
22.04.:
* Neue Set-Befehle regenerate und param
* neuer Get-Befehl paramList
* Attribut sq_interval
* Attribut disable
* Änderung der "realtime" Logik. Es besteht jetzt eine dauerhafte Websocket Connection ("realtime" zu triggern ist aber trotzdem noch notwendig, von sich aus scheint die Cloud nichts zu schicken ;-))



Wie gesagt, Feedback, Anregungen usw... sind sehr willkommen!





 
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Gehört eigentlich nicht hier her so wirklich aber ich wollte aus Interesse denn noch mal fragen.
Funktion aus der main rufst Du übe den Packagekontext auf. Hast aber GP_Import aktiv. Wieso importierst Du nicht die Funktionen und arbeitest dann mit den direkten Funktionsnamen?
Ist für mich nur so von Interesse.

Vielen Dank


Grüße
Marko
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

KernSani

Zitat von: CoolTux am 18 April 2020, 15:57:46
Gehört eigentlich nicht hier her so wirklich aber ich wollte aus Interesse denn noch mal fragen.
Funktion aus der main rufst Du übe den Packagekontext auf. Hast aber GP_Import aktiv. Wieso importierst Du nicht die Funktionen und arbeitest dann mit den direkten Funktionsnamen?
Ist für mich nur so von Interesse.

Vielen Dank


Grüße
Marko
Hat keinen besonderen Grund. Hatte mit main:: angefangen, wollte dann import machen, hatte dann keine Lust die main:: zu ändern usw... Über den code muss ich sowieso nochmal komplett drüber, dann kommt auch import ;-)


Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Roger

Hi KernSani,
ich habe auch eine Grünbeck SQ18 und habe gern Dein Modul runtergeladen.
Ich musste MIME::Base64::URLSafe und Protocol::WebSocket::Client nachinstallieren.
Aber ohne apptime vorher zu aktivieren läuft es nicht --> Absturz. Soll das so bleiben?

Aber mit apptime konnte ich es laden und es hat viele Werte ausgelesen und in Readings gespeichert.
Die muss ich mir noch genauer anschauen.

Mit dankendem Gruss
Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

KernSani

Zitat von: Roger am 18 April 2020, 22:20:37
Hi KernSani,
ich habe auch eine Grünbeck SQ18 und habe gern Dein Modul runtergeladen.
Ich musste MIME::Base64::URLSafe und Protocol::WebSocket::Client nachinstallieren.
Aber ohne apptime vorher zu aktivieren läuft es nicht --> Absturz. Soll das so bleiben?

Aber mit apptime konnte ich es laden und es hat viele Werte ausgelesen und in Readings gespeichert.
Die muss ich mir noch genauer anschauen.

Mit dankendem Gruss
Roger
Hi Roger,
Danke für's erste testen... Das mit apptime finde ich sehr irritierend. Kannst du mir sagen, was die letzte Meldung im Log war, vor dem Absturz?
Danke,
Oli


Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Roger

Hi Oli,
hier sind die letzten zeilen vom Log:

2020.04.18 21:57:08.002 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /usr/lipo/fhem/FHEM/69_SoftliqCloud.pm line 181.
2020.04.18 21:57:08.002 1: ================>>>>>>>>>>>
Undefined subroutine &main::svref_2object called at /usr/lipo/fhem/FHEM/69_SoftliqCloud.pm line 937.


//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

KernSani

Oh shit, alles klar. Wird gefixt (und vieles weiteres ;-))


Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Roger

Hier mal meine Sammlung der Reading, welche ich den Daten aus der App zuordnen konnte.
Die Werte, welche ich aus der App noch nicht zuordnen könnte, habe ich mit ? gekennzeichnet.

# Einstellungen Allgemein
serialNumber      ## Seriennummer
softwareVersion  ## Software-Version
hardwareVersion ## Hardware-Version
?        ## Anlagentyp
timeZone           ## Zeitzone (Zeitdifferenz +-hh:mm)
?        ## automatische Umschaltung Winter-/Sommerzeit


# Einstellungen Signale
.pbuzzer     ## Audiosignal bei Stoerungen (1=aktiv)
.pbuzzfrom ## Audiosignal freigeben ab  (Uhrzeit)
.pbuzzto     ## Audiosignal freigeben bis (Uhrzeit)
.pallowpushnotification           ## Push-Benachrichtigung
.pallowemail           ## E-Mail-Benachrichtigung


# Einstellungen Wasser
?           ## Haerteeinheit ev .phunit (Wert=1)
rawWater ## Rohwasserhaerte


# Einstellungen Arbeitsweise
?           ## Arbeitsweise (Eco/Comfort/Power)


# Einstellungen Regeneration
?           ## Regererationszeitpunkt


# Einstellungen Service
lastService ## letzte Wartung (am Datum)
mmaint     ## naechste Wartung (in nnn Tagen)


# Produktinfos:
?           ## Meldungen
mmaint           ## naechste Wartung (in nnn Tagen)
?           ## aktueller Durchfluss (in cbm/h)
?           ## Arbeitsweise (Eco/Comfort/Power)


# Produktinfos: aktuelle Werte
rawWater        ## Rohwasserhaerte
softWater        ## Weichwasserhaerte
water_0_date  ## Datum 0 (fuer Weichwasserverbrauch)
water_0_value ## Weichwasserverbrauch (Liter zum Datum 0)
water_1_date  ## Datum 1 (fuer Weichwasserverbrauch)
water_1_value ## Weichwasserverbrauch (Liter zum Datum 1)
water_2_date  ## Datum 2 (fuer Weichwasserverbrauch)
water_2_value ## Weichwasserverbrauch (Liter zum Datum 2)
mrescapa1       ## Restkapazitaet (in cbm)
nextRegeneration ## naechste Regeneration (Zeitpunkt)
salt_0_date   ## Datum 0 (fuer Salzverbrauch)
salt_0_value  ## Salzverbrauch (Gramm zum Datum 0)
salt_1_date   ## Datum 1 (fuer Salzverbrauch)
salt_1_value  ## Salzverbrauch (Gramm zum Datum 1)
salt_2_date   ## Datum 2 (fuer Salzverbrauch)
salt_2_value  ## Salzverbrauch (Gramm zum Datum 2)



//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Sascha_F

Hi zusammen,

ggf. ne blöde Frage, aber ist "JSON::XS" = "Cpanel::JSON::XS".

Frage nur, da ich mit den Libraries nicht wirklich firm bin und die Installation gern über "Installer" mache - dieser hat mir jedoch nur "MIME::Base64::URLSafe" und "Protocol::WebSocket::Client" angezeigt.


Mit den Einstellungen zum Abfrageintervall soll man wohl vorsichtig umgehen. Zu viele Anfragen mag der Server wohl nicht, meine ich beim ioBroker-Adapter gelesen zu haben. Per Attribut einstellbar ist aber natürlich super!


Einen leichten Knoten habe ich auch noch bei den Readings zu "water" und "salt" im Kopf:

Heute ist als Beispiel salt_0 der Wert von gestern - morgen ist salt_1 dieser Wert von gestern. Wie bekomme ich denn die beiden Readings "salt_0_date" und "salt_0_value" gemeinsam in ein Reading für die Datenbank?

Wenn ich salt_1 und salt_2 ignoriere, muss ich mir ja keine Gedanken um diese Readings machen - ich lese immer nur "0" ein und baue damit ja eine historie auf.

Falls ich da nen zu großen Knoten im Hirn habe, gern her mit der Info^^ Irgendwie muss ich doch xxx_0_date und xxx_0_value als ein Reading in DBLOG bekommen, oder?

Viele Grüße
Sascha

KernSani

Zitat von: Sascha_F am 20 April 2020, 16:56:49
ggf. ne blöde Frage, aber ist "JSON::XS" = "Cpanel::JSON::XS".

Frage nur, da ich mit den Libraries nicht wirklich firm bin und die Installation gern über "Installer" mache - dieser hat mir jedoch nur "MIME::Base64::URLSafe" und "Protocol::WebSocket::Client" angezeigt.
Cpanel:: ist ein fork von JSON::XS - in der nächsten Version werde ich versuchen auch andere JSON Libraries zu nutzen, aber aktuell geht nur JSON::XS


ZitatMit den Einstellungen zum Abfrageintervall soll man wohl vorsichtig umgehen. Zu viele Anfragen mag der Server wohl nicht, meine ich beim ioBroker-Adapter gelesen zu haben. Per Attribut einstellbar ist aber natürlich super!
Habe ich auch gesehen... und ich hatte beim testen auch ein paar komische Effekte... muss man wahrscheinlich ausprobieren... 1h sollte aber kein Problem sein.


ZitatHeute ist als Beispiel salt_0 der Wert von gestern - morgen ist salt_1 dieser Wert von gestern. Wie bekomme ich denn die beiden Readings "salt_0_date" und "salt_0_value" gemeinsam in ein Reading für die Datenbank?

Wenn ich salt_1 und salt_2 ignoriere, muss ich mir ja keine Gedanken um diese Readings machen - ich lese immer nur "0" ein und baue damit ja eine historie auf.

Falls ich da nen zu großen Knoten im Hirn habe, gern her mit der Info^^ Irgendwie muss ich doch xxx_0_date und xxx_0_value als ein Reading in DBLOG bekommen, oder?

Ich glaube, das sinnvollste wäre es xxx_0_value am Ende des Tages per addLog ins Log zu schreiben. 
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Zitat von: Roger am 20 April 2020, 11:21:29
Hier mal meine Sammlung der Reading, welche ich den Daten aus der App zuordnen konnte:
Vielen Dank. Ich werde in der nächsten Version die ganzen Einstellungen (also die readings mit p.*) nicht mehr als reading darstellen (nur als "hidden" readings) und eine Get-Funktion breitstellen, die die Einstellungen aufbereitet. Setzen der Einstellungen funktioniert auch schon. Kommt wahrscheinlich heute Abend.


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Roger

Hi,
habe meinen Beitrag #8 um die noch nicht zugeordneten Werte aus der App ergänzt. Bei ? fehlt mir aktuell noch eine Zuordnung zu einem Reading.

//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

KernSani

Ich habe am ersten Post angehängte Version aktualisiert. Freue mich auf Anregungen und Feedback.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi zusammen,

@Kern-Sani: Das Modul läuft bei mir jetzt. Habe aktuell "Cpanel::JSON::XS" und nicht JSON::XS".

Möglichkeit 1: Du hast schon Anpassungen vorgenommen
Möglichkeit 2: es läuft out-of-the-box mit dem fork
Möglichkeit 3: mir ist nur noch nicht aufgefallen, dass etwas nicht rund läuft  ;D

Edit: Hab vergessen ins Log zu schauen und natürlich auch, nen Auszug dranzuhängen...


2020.04.25 10:10:39 1: [SD18] Calling connect on client...
2020.04.25 10:10:39 1: [SD18] Successfully connected to service!
2020.04.25 10:10:39 3: SD18 device opened
2020.04.25 10:10:39 1: PERL WARNING: Use of uninitialized value $error in concatenation (.) or string at ./FHEM/69_SoftliqCloud.pm line 1679.
2020.04.25 10:10:39 1: [SD18] - error while connecting to Websocket:
2020.04.25 11:09:16 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/69_SoftliqCloud.pm line 1117.
2020.04.25 11:10:36 3: [SD18]: Starting Timer



@Roger: ich habe mal versucht zu ergänzen - hoffe, nicht am Ziel vorbei ;-) Ansonsten natürlich gern einfach eine kurze Info.

Zitat von: Roger am 20 April 2020, 11:21:29
Hier mal meine Sammlung der Reading, welche ich den Daten aus der App zuordnen konnte.
Die Werte, welche ich aus der App noch nicht zuordnen könnte, habe ich mit ? gekennzeichnet.

# Einstellungen Allgemein
serialNumber      ## Seriennummer
softwareVersion  ## Software-Version
hardwareVersion ## Hardware-Version
?        ## Anlagentyp
timeZone           ## Zeitzone (Zeitdifferenz +-hh:mm)
?        ## automatische Umschaltung Winter-/Sommerzeit


# Einstellungen Signale
.pbuzzer     ## Audiosignal bei Stoerungen (1=aktiv)
.pbuzzfrom ## Audiosignal freigeben ab  (Uhrzeit)
.pbuzzto     ## Audiosignal freigeben bis (Uhrzeit)
.pallowpushnotification           ## Push-Benachrichtigung
.pallowemail           ## E-Mail-Benachrichtigung


# Einstellungen Wasser
phunit ## Haerteeinheit (zumindest ist hier "°dh" enthalten)
rawWater ## Rohwasserhaerte


# Einstellungen Arbeitsweise
?           ## Arbeitsweise (Eco/Comfort/Power)


# Einstellungen Service
lastService ## letzte Wartung (am Datum)
mmaint     ## naechste Wartung (in nnn Tagen)


# Einstellungen Regeneration
?           ## Regererationszeitpunkt


# Einstellungen Service
lastService ## letzte Wartung
mmaint ## naechste Wartung (in nnn Tagen)


# Produktinfos:
?           ## Meldungen
mmaint  ## naechste Wartung (in nnn Tagen)
?           ## aktueller Durchfluss (in cbm/h)
?           ## Arbeitsweise (Eco/Comfort/Power)


# Produktinfos: aktuelle Werte
rawWater        ## Rohwasserhaerte
softWater        ## Weichwasserhaerte
water_0_date  ## Datum 0 (fuer Weichwasserverbrauch)
water_0_value ## Weichwasserverbrauch (Liter zum Datum 0)
water_1_date  ## Datum 1 (fuer Weichwasserverbrauch)
water_1_value ## Weichwasserverbrauch (Liter zum Datum 1)
water_2_date  ## Datum 2 (fuer Weichwasserverbrauch)
water_2_value ## Weichwasserverbrauch (Liter zum Datum 2)
mrescapa1 ## Restkapazitaet (in cbm) (allerdings gibt es auch "mrescapa2", welches ich als Angabe bei Duplex interpretiert hätte. Allerdings steht hier bei mir auch ein Wert - leicht geringer als in mrescapa1.)
nextRegeneration ## naechste Regeneration (Zeitpunkt)
salt_0_date   ## Datum 0 (fuer Salzverbrauch)
salt_0_value  ## Salzverbrauch (Gramm zum Datum 0)
salt_1_date   ## Datum 1 (fuer Salzverbrauch)
salt_1_value  ## Salzverbrauch (Gramm zum Datum 1)
salt_2_date   ## Datum 2 (fuer Salzverbrauch)
salt_2_value  ## Salzverbrauch (Gramm zum Datum 2)



//Roger


Viele Grüße
Sascha

Roger

Hi Sascha,
danke für Deine Ergänzungen --> habe meinen Post #8 angepasst.
Bei .phunit steht bei mir Wert 1 drin (und nicht "°dh" wie anscheinend bei Dir).

Richtig: mrescapa1 entspricht der Restkapazität in cbm.
mrescapa2 habe ich auch mit einem geringeren Wert.

//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Roger

Hi Oli,
ich habe mal ein FileLog für die Grünbeck angelegt. Dabei stören etliche Readings, welche oft geloggt werden:
- refreshToken
- accessToken
- expires_on
- not_before
- type
Diese kann man zwar (aufwändig) ausklammern, aber schöner wäre es wenn Du die z.B. als Internal speichern kannst oder die Events dieser reading beim Update ausschaltest.

Die Readings: salt_._date, salt_._value, water_._date, water_._value
sind für Grafiken schwierig zu verwenden. Ich habe mir userReadings gebastelt:

attr <name> userReadings Salz__g:salt_0_value.* {ReadingsNum($name,"salt_0_value" ,"n/a")},\
                            Wasser__l:water_0_value.* {ReadingsNum($name,"water_0_value","n/a")}

Damit erhalte ich die Reading: Salz__g und Wasser__l, welche ich dann in einer Grafik darstellen kann (sind dann die Werte vom Vortag). Vielleicht kann man das auch in das Modul einbauen?

//Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Sascha_F

Hi zusammen,

@KernSani:
Mein FHEM-Server hat sich jetzt mehrmals neu gestartet, ohne dass ich es mitbekommen habe (werde wohl langsam alt)  ;D

Log:

2020.04.29 15:35:08 1: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.04.29 15:35:08 1: [SD18] - error while connecting to Websocket:
2020.04.29 15:35:08 1: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.04.29 15:35:08 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.04.29 15:35:08 1: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.04.29 15:35:08 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.04.29 15:35:09 1: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=CZhUju-8kuTfJS0C1Jg6Xwadf2ead51&access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIzMzQ5NTI3MC03N2I5LTQ1ZGYtOTEyYi1lYTE5M2M5MzU1OGIiLCJuYmYiOjE1ODgxNjczMDgsImV4cCI6MTU4ODE2OTEwOCwiaWF0IjoxNTg4MTY3MzA4LCJhdWQiOiJodHRwczovL3Byb2QtZXUtZ3J1ZW5iZWNrLXNpZ25hbHIuc2VydmljZS5zaWduYWxyLm5ldC9jbGllbnQvP2h1Yj1ncnVlbmJlY2sifQ.7fssChnilYD44GM3V-yXnUdeFduce9H404lMXJqTzqI...
2020.04.29 15:35:09 1: [SD18] Calling connect on client...
2020.04.29 15:35:09 1: [SD18] Successfully connected to service!
2020.04.29 15:35:09 3: SD18 device opened
2020.04.29 15:35:09 1: [SD18] - error while connecting to Websocket:
2020.04.29 15:35:09 1: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=CZhUju-8kuTfJS0C1Jg6Xwadf2ead51&access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIzMzQ5NTI3MC03N2I5LTQ1ZGYtOTEyYi1lYTE5M2M5MzU1OGIiLCJuYmYiOjE1ODgxNjczMDgsImV4cCI6MTU4ODE2OTEwOCwiaWF0IjoxNTg4MTY3MzA4LCJhdWQiOiJodHRwczovL3Byb2QtZXUtZ3J1ZW5iZWNrLXNpZ25hbHIuc2VydmljZS5zaWduYWxyLm5ldC9jbGllbnQvP2h1Yj1ncnVlbmJlY2sifQ.7fssChnilYD44GM3V-yXnUdeFduce9H404lMXJqTzqI...
2020.04.29 15:35:09 1: [SD18] Calling connect on client...
2020.04.29 15:35:09 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.04.29 15:35:12 1: Including fhem.cfg



Wird doch aber eher nicht an der Verwendung von "Cpanel::JSON::XS" statt "JSON::XS" liegen --> oder doch?

Ich deaktiviere das Device erst einmal, denn eben gerade hat es durch den Neustart meine Sicherheitsschaltung für Kochfeld und Dunstabzug ausgelöst - was ja eher ungünstig ist, wenn man Hunger hat :-D    Muss da mal schauen, was ich da wieder falsch "rumgepfuscht" habe^^


@Roger: Habe gerade zur Sicherheit noch mal geschaut - über get paramList erhalte ich tatsächlich bei phunit "1 (°dH)".

Ich weiß nicht, ob das Reading "unit" dazugehört - da steht bei mir auch "nur" die "1".

KernSani

Hallo zusammen,

@Sascha: sorry bin ein Weilchen nicht dazugekommen am Modul weiter zu basteln, aber heute sollte es eine neue Version geben.
Das "ERROR ON WEBSOCKET" muss ich mir ansehen... Wo das herkommt kann ich mir aktuell nicht erklären, ich kann aber sicherstellen, dass sich FHEM dann nicht verabschiedet.

Kleine Erläuterung noch zu getParamList. Bei einigen Parametern wie z.B. phunit kommt eine Zahl(1) zurück, sofern ich den zugehörigen Text gefunden habe, stellt das Modul diesen in Klammer hinten dran (°dH).

@Roger: Das Modul schreibt aktuell "dumm" alles in Readings, was im JSON zurück geliefert wird. Die von dir genannten Readings (außer "type") werde ich in Zukunft als "hidden" readings schreiben, da sie nur intern benötigt werden. Es gibt auch noch eine ganze Menge Readings, die sich nie ändern, da macht es auch nicht wirklich Sinn diese jedes mal zu triggern...
Dein Userreading verstehe ich nicht... Wenn ich das richtig sehe schreibst du doch nur den Wert des heutigen Tages in ein eigenes Reading... Kannst du nicht genauso gut mit dem eigentlichen Reading arbeiten?

Ich teile übrigens die Vermutung, dass bei den Readings, die es mit 1 und 2 am Ende gibt, die 2er für Duplex-Entkalker gedacht sind und würde die (per Attribut änderbar) in Zukunft ausblenden.

mrescapa2 ist bei mir übrigens konstant 0.56

Grüße,

Oli

Ergänzung: Habe gerade in meinem Testsystem gesehen, dass ich den ERROR ON WEBSOCKET heute auch hatte - FHEM ist aber nicht neu gestartet, der Fehler wird (in meiner Testversion) schon abgefangen.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Neue Version mit kleinen Verbesserungen und besserer Fehlerbehandlung im Anhang des ersten Posts.
Ein paar Anmerkungen:
* Ich empfehle ein deletereading <SD-Device> p.* und deletereading <SD-Device> m.*
* WebSocket sollte neu initialisiert werden, am einfachsten geht das indem man kurz das Attribut disable auf 1 setzt und dann wieder löscht. Alternativ FHEM restart.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi KernSani,

das wichtigste zuerst:
Zitatsorry bin ein Weilchen nicht dazugekommen am Modul weiter zu basteln, aber heute sollte es eine neue Version geben.

Das ist absolut nicht erforderlich! ;-)  Du machst das schließlich in Deiner Freizeit und ich bin froh, dass Du Dir die Arbeit machst! Mir selbst fehlt leider das ganze know how. Ich versuche mich nach und nach einzulesen/einzuarbeiten, aber das wird noch Dekaden dauern  ;D

Ich habe gerade die aktuelle Version eingespielt und werde mal schauen, wie sich mein FHEM verhält.

Was mir direkt aufgefallen ist

  • attr disable: Die "1" muss per Hand gesetzt werden - ich könnte schwören, dass es vorher ein DropDown war (mag mir auch irren - ist ja aber nur ne Kleinigkeit)
  • Log: Websocket-Error

2020.05.01 09:24:50 3: [SD18]: Starting Timer
2020.05.01 09:24:52 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 09:24:52 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 09:24:52 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=<gekürzt wegen Lesbarkeit>
2020.05.01 09:24:52 3: [SD18] Calling connect on client...
2020.05.01 09:24:52 3: [SD18] Successfully connected to service!
2020.05.01 09:24:52 3: SD18 device opened
2020.05.01 09:24:52 1: [SD18] - error while connecting to Websocket:


Viele Grüße ++ einen schönen 1. Mai natürlich  :)
Sascha

KernSani

Guten Morgen Sascha,
das mit dem disable dropdown ist mir auch schon aufgefallen, keine Ahnung was da los ist, aber werde ich rausfinden ;-)
Ist der Websocket-Fehler dauerhaft oder einmalig? Bekommst du die m.* readings?


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

leicht optimierte Version im Anhang des ersten Posts...
Bad News: Mir ist heute das Salz ausgegangen. Das Modul hat davon nichts mitbekommen :-(
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi!

Das mit dem Salz und der ausbleibenden Meldung ist natürlich ärgerlich - ich möchte jetzt lieber nicht von einem glücklichen Zufall reden  ;)

Das positive: Mein FHEM-Server hat keine Neustarts hingelegt. Wenn es am Modul gelegen haben sollte, ist das jetzt fein (nach einem Tag Beobachtung).

Mit m.* Readings meinst Du alle "echten" Readings wie "mrescapa1", "mmaint" usw.? Dann ja, die bekomme ich (hatte sie auch vorher aufgrund Deines Posts mit deletereading gelöscht und das Device deaktiviert/aktiviert).

Den Websocket-Error habe ich weiterhin im Log - allerdings nicht stündlich analog des Intervals.

Starting Timer läuft immer um hh:24:50

2020.05.01 09:24:50 3: [SD18]: Starting Timer
2020.05.01 10:24:50 3: [SD18]: Starting Timer
2020.05.01 11:24:50 3: [SD18]: Starting Timer
2020.05.01 12:24:50 3: [SD18]: Starting Timer
2020.05.01 13:24:50 3: [SD18]: Starting Timer
2020.05.01 14:24:50 3: [SD18]: Starting Timer
2020.05.01 15:24:50 3: [SD18]: Starting Timer
2020.05.01 16:24:50 3: [SD18]: Starting Timer
2020.05.01 17:24:50 3: [SD18]: Starting Timer
2020.05.01 18:24:50 3: [SD18]: Starting Timer
2020.05.01 19:24:50 3: [SD18]: Starting Timer
2020.05.01 20:24:50 3: [SD18]: Starting Timer
2020.05.01 21:24:50 3: [SD18]: Starting Timer
2020.05.01 22:24:50 3: [SD18]: Starting Timer
2020.05.01 23:24:50 3: [SD18]: Starting Timer



Ich dachte erst, dass das Modul dazwischen quasi nichts macht. Um 15:11 und 23:52 ging es in meinem Log wieder richtig zur Sache.

Ich poste mal alle Einträge zu 23:52:

2020.05.01 23:52:08 1: prod-eu-gruenbeck-signalr.service.signalr.net:443 disconnected, waiting to reappear (SD18)
2020.05.01 23:52:09 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:09 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:10 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:10 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:10 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:10 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:10 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:10 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:10 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:10 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:10 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:10 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:10 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:10 3: [SD18] Calling connect on client...
2020.05.01 23:52:10 3: [SD18] Successfully connected to service!
2020.05.01 23:52:10 3: SD18 device opened
2020.05.01 23:52:10 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:10 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:10 3: [SD18] Calling connect on client...
2020.05.01 23:52:10 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:10 1: PERL WARNING: sysread() on closed filehandle GEN87666 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:10 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:10 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:10 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:10 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:10 3: [SD18] Calling connect on client...
2020.05.01 23:52:10 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:10 1: PERL WARNING: sysread() on closed filehandle GEN87660 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:10 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:10 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:10 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:11 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:11 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:11 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:11 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:11 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:11 3: [SD18] Calling connect on client...
2020.05.01 23:52:11 3: [SD18] Successfully connected to service!
2020.05.01 23:52:11 3: SD18 device opened
2020.05.01 23:52:11 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:11 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:11 3: [SD18] Calling connect on client...
2020.05.01 23:52:11 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:11 1: PERL WARNING: sysread() on closed filehandle GEN87674 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:11 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:11 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:11 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:11 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:11 3: [SD18] Calling connect on client...
2020.05.01 23:52:11 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:11 1: PERL WARNING: sysread() on closed filehandle GEN87678 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:11 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:11 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:11 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:11 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:11 3: [SD18] Calling connect on client...
2020.05.01 23:52:11 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:11 1: PERL WARNING: sysread() on closed filehandle GEN87681 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:11 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:11 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:11 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:12 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:12 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:12 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:12 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:12 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:12 3: [SD18] Calling connect on client...
2020.05.01 23:52:12 3: [SD18] Successfully connected to service!
2020.05.01 23:52:12 3: SD18 device opened
2020.05.01 23:52:12 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:12 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:12 3: [SD18] Calling connect on client...
2020.05.01 23:52:12 1: [SD18] ERROR ON WEBSOCKET: Wrong response line. Got [[HTTP/1.1 409 Conflict]], expected [[HTTP/1.1 101 ]]
2020.05.01 23:52:12 1: PERL WARNING: sysread() on closed filehandle GEN87691 at ./FHEM/69_SoftliqCloud.pm line 1678.
2020.05.01 23:52:12 1: [SD18] sysread on tcp_socket failed: Bad file descriptor
2020.05.01 23:52:12 1: Cannot init prod-eu-gruenbeck-signalr.service.signalr.net:443, ignoring it (SD18)
2020.05.01 23:52:12 1: [SD18] - error while connecting to Websocket:
2020.05.01 23:52:12 3: [SD18] Attempting to open SSL socket to wss://prod-eu-gruenbeck-signalr.service.signalr.net:443...
2020.05.01 23:52:12 3: Opening SD18 device prod-eu-gruenbeck-signalr.service.signalr.net:443
2020.05.01 23:52:12 3: [SD18] Trying to create Protocol::WebSocket::Client handler for wss://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck&id=<gekürzt wegen Lesbarkeit>
2020.05.01 23:52:12 3: [SD18] Calling connect on client...
2020.05.01 23:52:12 3: [SD18] Successfully connected to service!
2020.05.01 23:52:12 3: SD18 device opened
2020.05.01 23:52:12 1: [SD18] - error while connecting to Websocket:
2020.05.02 00:24:50 3: [SD18]: Starting Timer



Und den hier hab ich gefunden

[SD18] - Received invalid JSON: garbage after JSON object, at character offset 10 (before "{"type":1,"target":"...") at ./FHEM/69_SoftliqCloud.pm line 1446.


Wenn etwas auffällt, dass ggf. an meinem System System liegt - natürlich gern Hinweise darauf  :o

Ich spiele gleich mal die neue Version ein  :)

Viele Grüße
Sascha

Frank_Huber

Hat die Anlage denn eine Salzwarnung?
Unsere SC18 hat zb. Keine, hätte erst die nachst grössere gehabt.

Gesendet von meinem S68Pro mit Tapatalk


KernSani

Zitat von: Frank_Huber am 02 Mai 2020, 09:50:52
Hat die Anlage denn eine Salzwarnung?
Unsere SC18 hat zb. Keine, hätte erst die nachst grössere gehabt.

Gesendet von meinem S68Pro mit Tapatalk
Ja, per Push-Meldung, Email und an der Anlage selbst... Ich hatte eigentlich erwartet, dass irgendein reading dann auch was zeigt. Habe bisher aber nichts gefunden... Muss aber vielleicht die Logs nochmal im Detail durchgehen.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi,

meine SD18 hat bisher folgende Meldungen ausgelöst (in der Grünbeck Cloud-App) (erste Nacht nach Inbetriebnahme...):


  • Salzvorrat verbraucht!
  • Anlage saugt Sole schlecht ab!
  • Antriebsstörung Steuerventil Regeneration!
  • Wassermenge Regeneration nicht erreicht!

Diese sollten ja (so denke ich) über die Cloud zu holen sein. War aber ein guter Hinweis von Dir - habe noch mal in die Anleitung gesehen und dort steht, dass es die Meldung "Salzvorrat gering!" nur bei den Modellen SD21 und SD23 gibt. Schade, ich dachte, dass die SD18 das auch hat. Traurig, dass Grünbeck eine solche -für den Betrieb essentielle Prüfung- nicht in alle Modellen implementiert hat. Die die 3,50 EUR mehr hätten mich bei der Anschaffung nicht gestört... Da bleibt (uns SD18-Besitzern) dann wohl nur die Variante, die Füllmenge grob zu schätzen und über das Reading salt_0_value selbst zu rechnen. Ist ja zumindest besser, als nichts...

Viele Grüße
Sascha

KernSani

Falsch gelesen... eine Warnung dass die Menge gering ist habe ich auch nicht. Nur den Fehler, dass Salz alle ist.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Frank_Huber

Meine sc18 braucht ca 1 sack im jahr im 4 personen haushalt.
Ich fand es auch schade das die 18er die Warnung nicht hatte, mittlerweile ist es aber egal da auch ohne sehr gut planbar. (wir gehen von 22dh auf 4dh runter.

Gesendet von meinem S68Pro mit Tapatalk


KernSani

Zitat von: Frank_Huber am 02 Mai 2020, 11:44:41
Meine sc18 braucht ca 1 sack im jahr im 4 personen haushalt.
Ich fand es auch schade das die 18er die Warnung nicht hatte, mittlerweile ist es aber egal da auch ohne sehr gut planbar. (wir gehen von 22dh auf 4dh runter.

Gesendet von meinem S68Pro mit Tapatalk
Ich brauche deutlich mehr, auch 4 Personen von 23 auf 4, allerdings läuft bei mir dummerweise die Gartenbewässerung noch über den Entkalker - Umbau geplant.

Ich habe übrigens ein Reading msaltusage, das allerdings etwas höher ist, als der tatsächliche Salzverbrauch.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi zusammen,

ja, bei mir ist das auch recht gut planbar - 1 Personen-Haushalt, daher nicht wirklich viel Salzverbrauch (ich enthärte von 25 auf 4).

Gartenbewässerung wäre bei mir auch aktuell noch hinter dem Enthärter --> würde ich aktuell das Unkraut gießen wollen^^ (Die Entnahme ist für später -wenn der Garten mal Form annimmt- aber auch natürlich vor der Enthärtung geplant.)

Das Reading msaltusage ist bei mir auch minimal höher, als die kumulierten historischen Werte.

Viele Grüße
Sascha

KernSani

Ich denke ich baue einen ,,set refill" Befehl ein. Der merkt sich dann den aktuellen Saltusage-Stand und ein reading zeigt die Differenz zwischen aktueller Usage und letzter RefillUsage. Wenn diese Differenz bei z.B. 22 ist wird's Zeit einen neuen Sack bereit zu stellen... Macht das Sinn?


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Frank_Huber



Zitat von: KernSani am 02 Mai 2020, 11:49:26
allerdings läuft bei mir dummerweise die Gartenbewässerung noch über den Entkalker - Umbau geplant.

Ein Tipp: wenn du das umbaust, baue dir auch eine Zapfstelle für Trinkwasser ein. Manche mögen den metallischen Geschmack vom entkalkten nicht.
Aber jetzt ist gebug OT... [emoji6]

Gesendet von meinem S68Pro mit Tapatalk


KernSani

Zitat von: KernSani am 02 Mai 2020, 12:43:29
Ich denke ich baue einen ,,set refill" Befehl ein. Der merkt sich dann den aktuellen Saltusage-Stand und ein reading zeigt die Differenz zwischen aktueller Usage und letzter RefillUsage. Wenn diese Differenz bei z.B. 22 ist wird's Zeit einen neuen Sack bereit zu stellen... Macht das Sinn?
Leicht optimierte Version im ersten Post (Achtung Änderungen beim Passwort, bitte im ersten Post nachlesen)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Zitat von: Frank_Huber am 02 Mai 2020, 12:48:54

Ein Tipp: wenn du das umbaust, baue dir auch eine Zapfstelle für Trinkwasser ein. Manche mögen den metallischen Geschmack vom entkalkten nicht.
Aber jetzt ist gebug OT... [emoji6]
Guter Tipp :-) Habe nachgeschaut... Es gibt schon einen Hahn, der an der Leitung zum Garten hängt (hinter der Stelle wo wir jetzt "Kalkwasser" andocken wollen)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi!

Seit dem aktuellen FHEM-Update startet mein FHEM permanent neu durch, sobald ich irgendeinen Raum anklicke (zumindest merke ich es dann + "Connecten lost"-Meldung).

Ich bin jetzt jedes Update-Paket einzeln durchgegangen (neu gegen alt ersetzen usw.) und komme bei der neuen DevIO.pm an, mit welcher es nicht mehr läuft.

Im Forum habe ich gefunden:

Revision 22027: DevIo.pm: add websocket (Forum #109910)
DevIo.pm: add websocket (Forum: #109910)
Source: Revision 22027: DevIo.pm: add websocket (Forum #109910)

Bei websocket hat etwas bei mir geklingelt. Habe dann das Device für meine SD18 gelöscht und FHEM läuft mit der neuen DevIO.pm.

Besteht ein Problem mit dem Modul i.V.m. der neuen DevIO.pm oder ansonsten eine Idee, was da bei mir falsch laufen kann?

(Hab parallel auch ein Issue auf GitHub eröffnet --> wusste nicht, was Dir lieber ist).

Viele Grüße
Sascha

KernSani

Ich mache heute abend mal ein Update auf meiner Testmaschine und schau was da schief läuft. Tatsächlich war meine Anfrage ja der Auslöser, dass Rudi DevIo umgebaut hat :-S


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KölnSolar

Hi Oli,
erst dachte ich kann nicht sein, da Rudi doch ws:... als "erkennungsmerkmal" umgesetzt hat. Jetzt hab ich mir aber gerade das DevIo.pm ansehen wollen u. per Zufall gesehen, dass er beim simpe_read die frame-bits eliminiert, wenn $hash->{WEBSOCKET} gesetzt ist.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Version im ersten Post aktualisiert.
@Markus: Danke für den Hinweis. das hat die Suche einfach gemacht :-)

Werde mich jetzt mal dran machen Rudis Websocket-Implementierung zu verstehen und im im Modul zu nutzen.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi zusammen,

super und vielen Dank!  :D

In die Änderungen der DevIO.pm hatte ich auch reingesehen - meine Schlussfolgerung war aber leider nur "ah ja, grün ist also neu und rot ist also obsolet... ;D

Habe das Device jetzt wieder neu angelegt und läuft.

Falls es hilft, hier schon mal das Log. Leider bin ich noch immer so Perl-fern... Hoffe, das wird irgendwann mal was, aber ist nicht so leicht für mich :-\


2020.05.31 09:42:00 1: PERL WARNING: Subroutine Initialize redefined at ./FHEM/69_SoftliqCloud.pm line 232.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Define redefined at ./FHEM/69_SoftliqCloud.pm line 253.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Undefine redefined at ./FHEM/69_SoftliqCloud.pm line 286.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Notify redefined at ./FHEM/69_SoftliqCloud.pm line 293.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Set redefined at ./FHEM/69_SoftliqCloud.pm line 306.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Get redefined at ./FHEM/69_SoftliqCloud.pm line 351.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine Attr redefined at ./FHEM/69_SoftliqCloud.pm line 415.
2020.05.31 09:42:00 1: PERL WARNING: Subroutine refill redefined at ./FHEM/69_SoftliqCloud.pm line 476.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine setParam redefined at ./FHEM/69_SoftliqCloud.pm line 483.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine regenerate redefined at ./FHEM/69_SoftliqCloud.pm line 518.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseRegenerate redefined at ./FHEM/69_SoftliqCloud.pm line 554.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine sqTimer redefined at ./FHEM/69_SoftliqCloud.pm line 591.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine query redefined at ./FHEM/69_SoftliqCloud.pm line 603.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine isExpiredToken redefined at ./FHEM/69_SoftliqCloud.pm line 624.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine authenticate redefined at ./FHEM/69_SoftliqCloud.pm line 636.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseAuthenticate redefined at ./FHEM/69_SoftliqCloud.pm line 692.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine login redefined at ./FHEM/69_SoftliqCloud.pm line 727.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseLogin redefined at ./FHEM/69_SoftliqCloud.pm line 773.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getCode redefined at ./FHEM/69_SoftliqCloud.pm line 800.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseCode redefined at ./FHEM/69_SoftliqCloud.pm line 832.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine initToken redefined at ./FHEM/69_SoftliqCloud.pm line 854.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseRefreshToken redefined at ./FHEM/69_SoftliqCloud.pm line 900.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getRefreshTokenHeader redefined at ./FHEM/69_SoftliqCloud.pm line 934.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getRefreshTokenDirect redefined at ./FHEM/69_SoftliqCloud.pm line 972.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getRefreshToken redefined at ./FHEM/69_SoftliqCloud.pm line 982.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getDevices redefined at ./FHEM/69_SoftliqCloud.pm line 991.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseDevices redefined at ./FHEM/69_SoftliqCloud.pm line 1014.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getMeasurements redefined at ./FHEM/69_SoftliqCloud.pm line 1051.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getInfo redefined at ./FHEM/69_SoftliqCloud.pm line 1100.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseInfo redefined at ./FHEM/69_SoftliqCloud.pm line 1124.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getParamList redefined at ./FHEM/69_SoftliqCloud.pm line 1183.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getParam redefined at ./FHEM/69_SoftliqCloud.pm line 1210.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseParam redefined at ./FHEM/69_SoftliqCloud.pm line 1236.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine negotiate redefined at ./FHEM/69_SoftliqCloud.pm line 1288.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseNegotiate redefined at ./FHEM/69_SoftliqCloud.pm line 1313.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseWebsocketId redefined at ./FHEM/69_SoftliqCloud.pm line 1361.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine realtime redefined at ./FHEM/69_SoftliqCloud.pm line 1398.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseRealtime redefined at ./FHEM/69_SoftliqCloud.pm line 1430.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine getCookies redefined at ./FHEM/69_SoftliqCloud.pm line 1440.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine processCmdQueue redefined at ./FHEM/69_SoftliqCloud.pm line 1470.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine safe_decode_json redefined at ./FHEM/69_SoftliqCloud.pm line 1487.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine use_module_prio redefined at ./FHEM/69_SoftliqCloud.pm line 1506.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine StorePassword redefined at ./FHEM/69_SoftliqCloud.pm line 1523.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine ReadPassword redefined at ./FHEM/69_SoftliqCloud.pm line 1551.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine Rename redefined at ./FHEM/69_SoftliqCloud.pm line 1598.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine wsConnect redefined at ./FHEM/69_SoftliqCloud.pm line 1611.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine parseWebsocketRead redefined at ./FHEM/69_SoftliqCloud.pm line 1671.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine wsHandshake redefined at ./FHEM/69_SoftliqCloud.pm line 1704.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine wsFail redefined at ./FHEM/69_SoftliqCloud.pm line 1815.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine Ready redefined at ./FHEM/69_SoftliqCloud.pm line 1829.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine wsReadDevIo redefined at ./FHEM/69_SoftliqCloud.pm line 1838.
2020.05.31 09:42:01 1: PERL WARNING: Subroutine wsClose redefined at ./FHEM/69_SoftliqCloud.pm line 1849


Viele Grüße
Sascha

KernSani

Hi Sascha,
die ,,redefined" Warnungen sind ganz normal beim ,,reload". Ist das restart-Problem behoben?
Grüße,
Oli


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi Oli,

ah, alles klar, dann vergesse ich die redefined sofort wieder  :D

Mit der neuen Version läuft es seit gestern früh wieder 1a durch - keine Probleme mehr bzgl. des Restarts.

Danke Dir!  :)

Viele Grüße und schöne Pfingsten natürlich
Sascha

Sascha_F

Hi Oli,

noch eine kurze Rückfrage (bin auf dem heutigen FHEM-Update-Stand mit DevIO - mit dem Stand direkt davor aber anlaog):

Der state des Devices wechselt auf "closed" - ist das gewollt? Ich hatte in Erinnerung, dass der state eigentlich nur von "initialized" auf  "opened" wechselte - "closed" quasi einen Fehlerzustand signalisierte.

Sofern das works-as-designed ist (also nur zum Zeitpunkt der Aktualisierung nach Timer-Ablauf der Status auf "opened" wechselt), dann ist alles ok - dann ändere ich bei mir nur, dass "closed" nicht als Fehler interpretiert wird.

Viele Grüße ++ schönes WE
Sascha

KernSani

Hi Sascha,

Das Verhalten ist korrekt, hätte ich vielleicht erwähnen sollen... Da über die Websocket-Verbindung eh keine Daten kommen, wenn man keine Abfrage triggert, baue ich die Verbindung wieder ab.

Grüße,

Oli


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi Oli,

check - dann nehme ich das "Achtung, irgendwas stimmt hier nicht" bei mir wieder raus  ;D

Viele Grüße
Sascha

KernSani

Warnung: Ich habe gestern ein Update gemacht und die fortschreitende Entwicklung bei DevIo führt wieder zum Crash durch das Softliq Modul. Update kommt heute Abend.


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Habe übrigens mal ein bisschen mit DOIF uiTables rumgespielt:

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

so, aktuelle Version im ersten Post (Voraussetzung ist aktuelles FHEM). Die Websocket-Verbindung bleibt jetzt doch wieder permanent offen... vielleicht kommt ja doch mal was unaufgefordert an...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi Oli,

oha - ich habe auch die aktuellste DevIO über Das Update drin - bei mir lief es aber alles ohne Probleme durch. Unabhängig davon, werde ich aber gleich mal die neue Version nehmen (leider jetzt erst gesehen - habe meine Mails die Woche n bissl vernachlässigt - die auf der Arbeit haben gereicht  ;D).

An eine UI wollte ich auch immer schon mal ran - ist leider irgendwie immer wieder im Sande verlaufen... Naja, irgendwann wird das bei mir auch noch mal was^^   Sieht gut aus, was Du Dir da zusammengebaut hast!

Viele Grüße
Sascha

TED85C

Hallo zusammen,

irgendwie stelle ich mich hier zu dumm an.

Nach dem define möchte ich das Password setzen wie in deinem ersten Post beschrieben.
Dabei kommt immer ein Fehler: "set password first"

Im Log ist dann folgendes zu finden:
2020.07.23 00:13:55 2: [Gruenbeck] - No password in file

Habt ihr ne Idee woran das liegt?

Danke

Sascha_F

Hi,

hast Du zur Sicherheit beide Varianten getestet --> also über das Device selbst und 1x über die "Eingabezeile"?

Bei mir hatte es damals einwandfrei funktioniert --> kann aber nicht mehr sagen, welche Variante ich verwendet hatte. Im Zweifelsfall aber im Device selbst, da ich sehr schreibfaul bin ;-)

Viele Grüße
Sascha

TED85C

Hallo Oli,

habe den Fehler gefunden. Aufgrund das ich das Modul noch nicht installiert hatte, ist aufgrund deiner Abfangroutine ganz am Anfang beim Get und Set Befehl es nicht möglich überhaupt das Passwort zu setzen:
    if ( !ReadPassword($hash) ) {
        return qq(set password first);}


Wenn ich diesen Teil herausnehme lässt sich das Passwort setzen.

Viele Grüße,
Christian

Adriano

Password setzen über Kommandozeile geht. Passwort setzen über Oberfläche nicht, da kommt dieser Fehler.

Danke für das Modul. Endlich die APP vom Handy löschen. Das war ja eine Zumutung ;)

FlorianSenne

Hallo zusammen,

nun bin ich endlich dazu gekommen, mich dem Modul zu widmen um meine SD18 mit FHEM zu verdienten.
Nachdem mir im ersten Anlauf die Per-Module MIME::Base64::URLSafe Protocol::WebSocket::Client gefehlt haben, habe ich diese mit CPAN nachinstalliert.
Soweit, so gut. Dann kam nach Einabe von define <Name> SoftliqCloud <Benutzer> die Fehlermeldung das die Syntax falsch ist und ich das Passwort direkt dahinter hängen muss. Hab ich getan, daraufhin erscheint auch das Device. so bald ich allerdings etwas festlegen will kommt die Fehlermeldung "Please define <Name> first" - jetzt hab ich ein Verständnisproblem ;)
Woran kann das liegen? Benutzer und Passwort passen.
Der Log sagt folgendes:
2020.10.11 14:44:34 3: FHEMWEB WEB CSRF error: csrf_675591995879684 ne csrf_538035080725043 for client WEB_192.168.1.54_56949 / command attr Wasserenthaertung room . For details see the csrfToken FHEMWEB attribute.
2020.10.11 14:44:34 3: FHEMWEB WEB CSRF error: csrf_675591995879684 ne csrf_538035080725043 for client WEB_192.168.1.54_56952 / command attr Wasserenthaertung room Unsorted. For details see the csrfToken FHEMWEB attribute

Hatte das schon mal jemand? Hat jemand eine Idee?

Danke euch schon mal und VG
Florian

FlorianSenne

Um mir mal selbst zu antworten: Ich habs heut nochmal versucht. Ergebnis: fail. Wie gesagt Device Sieht aus wie angelegt, ist sie aber erstmal nicht. Dann hab ich auf den Device Namen direkt geklich und siehe da...hat geklappt. Leider hat es mir aber FEHM zerlegt und auf einen alten Stand zurück gesetzt....wie immer das möglich ist...evtl hilft es ja dem Schöpfer des Moduls...

fhem_flash780

Hi,
wollte eben das modul auch ein Betrieb nehmen.
Habe die libs MIME::Base64::URLSafe und Digest::SHA nachgerüstet und fhem neugestartet.

Leider erhalte ich beim Define folgenden Fehler im Log:

2020.10.17 11:22:25 1: reload: Error:Modul 69_SoftliqCloud deactivated:
Excessively long <> operator at ./FHEM/69_SoftliqCloud.pm line 20.


Jemand ne Idee was ich falsch mache ?

Grüße

Jessyfoosy

Eventuell hilft es dem ein oder anderen. Ich hab auch ein paar Probleme gehabt bei der Einrichtung. Hier meine Anleitung um Abstürze zu vermeiden und das Problem "define password first" zu umgehen.


  • Erwähnte Pakete aus Post 1 installieren
  • die Datei aus Post 1 nutzen (die Github Version führt zum Absturz. Ältere Version ?)
  • Device anlegen
define <name> SoftliqCloud <loginName>

  • 69_SoftliqCloud.pm wie von TED85C vorrübergehend abändern
Zitat von: TED85C am 28 Juli 2020, 20:43:11

    if ( !ReadPassword($hash) ) {
        return qq(set password first);}


Wenn ich diesen Teil herausnehme lässt sich das Passwort setzen.

  • Passwort setzen
set <name> password <password>

  • Änderungen in der 69_SoftliqCloud.pm rückgängig machen

Danke an KernSani für die Arbeit. Trotz kleiner Problemchen hätte ich nicht gedacht die Anlage so schnell in FHEM einbinden zu können.

fhem_flash780

Zitat von: fhem_flash780 am 17 Oktober 2020, 11:28:30
Jemand ne Idee was ich falsch mache ?
;)

@Jessyfoosy: Danke für Deine Troubleshooting steps. Jetzt läuft`s auch bei mir. Entscheidender Tip ist das File aus Post 1 und die Prozedur mit Pasword.
Danke.

Grüße

Adriano

Hallo, bekomme neuerdings folgende Meldung im Log:

020.12.15 08:17:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/69_SoftliqCloud.pm line 1343.
2020.12.15 08:17:43 1: [Wasserenthaerter] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/69_SoftliqCloud.pm line 1494.


Ich kann gerne mal selbst schauen wenn zeitlich gerade ungünstig.

Danke und vG.
Adriano

Matscher

Hallo,
ich wollte gerade meine SD21 in FHEM einbinden und bekomme auch einen ähnlichen Fehler wie Adriano:
2020.12.20 21:56:33 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/69_SoftliqCloud.pm line 1063.
2020.12.20 21:56:34 1: [Wasserenthaerter] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at ./FHEM/69_SoftliqCloud.pm line 1494.

Hat sich was seitens Grünbeck geändert?

Grüße,Steve
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

Obi-Wan

Hallo KernSani,
auch ich erhalte regelmäßig aber nicht immer Fehlermeldungen im Log wie es die beiden vorherigen Beiträge auch schon zeigen:

2021.02.06 18:08:13 1: [WasserFee] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html PUBLI...") at ./FHEM/69_SoftliqCloud.pm line 1494.

Durch verbose = 5 konnte ich den Fehler eingrenzen - er erscheint in der Processing Queue: initToken gleich zu Beginn des Cloudzugriffs:

2021.02.06 18:08:13 4: [WasserFee] Processing Queue: initToken
2021.02.06 18:08:13 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/69_SoftliqCloud.pm line 879.
2021.02.06 18:08:13 4: [WasserFee]: Starting Timer
2021.02.06 18:08:13 4:  / <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>404 - File or directory not found.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
  <h2>404 - File or directory not found.</h2>
  <h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
</fieldset></div>
</div>
</body>
</html>
2021.02.06 18:08:13 1: [WasserFee] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html PUBLI...") at ./FHEM/69_SoftliqCloud.pm line 1494.

2021.02.06 18:08:13 1: PERL WARNING: Use of uninitialized value in localtime at ./FHEM/69_SoftliqCloud.pm line 925.
2021.02.06 18:08:13 1: PERL WARNING: Use of uninitialized value in localtime at ./FHEM/69_SoftliqCloud.pm line 926.
2021.02.06 18:08:13 4: [WasserFee] Processing Queue: getRefreshToken


Welche Datei oder welches Verzeichnis kann/soll denn hier fehlen ? Merkwürdig ist, das trotz diesen Fehlers die anschliessende Processing Queue: getRefreshToken und alle weiteren dann ohne Fehler weiterlaufen

Danke für eine Prüfung und Rückmeldung.
Obi-Wan

Adriano

Scheint wohl nicht mehr zu klappen. Sie haben anscheinend im Backend etwas geändert.#

Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "You do not have perm...") at ./FHEM/69_SoftliqCloud.pm line 1494.

mhill

Hallo,

auch bei mir geht es nicht mehr.
Im Log hab ich immer wieder diese Meldungen.

2021.03.22 13:52:13.909 1: [SoftliqSD23] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "You do not have perm...") at ./FHEM/69_SoftliqCloud.pm line 1494.

2021.03.22 13:52:14.078 1: [SoftliqSD23] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/69_SoftliqCloud.pm line 1494.


Das Passwort hab ich im Web und in FEHM neu gesetzt.

Gibt es jemand bei dem es noch geht?

Gruß Markus

KernSani

Hi zusammen,
sorry - war länger nicht hier. Hab' das Modul bezüglich der geänderten Grünbeck-API angepasst. Die Installationsprobleme schaue ich mir demnächst mal in Ruhe an.
Aktualisiertes Modul hängt (in wenigen Sekunden) am ersten Post.
Grüße,
Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Obi-Wan

Hallo KernSani,

danke fürs kümmern, habe es gleich mal installiert, leider noch ohne Erfolg:

2021.03.26 11:31:09 4: [WasserFee] - Read password from file
2021.03.26 11:31:10 4:  / {"access_token":"blablabla","id_token":"blablabla":"Bearer","not_before":1616754670,"expires_in":3600,"expires_on":1616758270,"resource":"xxxxxx","client_info":"yyy""scope":"https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation","refresh_token":"blabla","refresh_token_expires_in":7776000}
2021.03.26 11:31:10 5: {
  'id_token' => 'blablaw',
  'token_type' => 'Bearer',
  'client_info' => 'blabla',
  'expires_in' => 3600,
  'refresh_token' => 'blabla',
  'not_before' => 1616754670,
  'scope' => 'https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation',
  'expires_on' => 1616758270,
  'refresh_token_expires_in' => 7776000,
  'resource' => 'xxxx',
  'access_token' => 'blabla'
}

2021.03.26 11:31:10 4: [WasserFee] - Read password from file
2021.03.26 11:31:10 4: [WasserFee] - Read password from file
2021.03.26 11:31:10 4:  /
2021.03.26 11:31:10 1: [WasserFee] - Received invalid JSON: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/69_SoftliqCloud.pm line 1500.

2021.03.26 11:31:10 5: undef

2021.03.26 11:31:13 5: Websocket msg: OP:1 LEN:11 MASK:0 FIN:1
2021.03.26 11:31:13 5: [WasserFee] Received from DevIo: {"type":6}

KernSani

Kannst du mal ein ,,authenticate" und danach ein ,,query" machen?
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Obi-Wan

gerne:
2021.03.26 13:10:33 4: [WasserFee] - Read password from file
2021.03.26 13:10:33 4: [WasserFee] Processing Queue: authenticate
2021.03.26 13:10:33 5: 1st Generated URL is https://gruenbeckb2c.b2clogin.com/a50d35c1-202f-4da7-aa87-76e51a3098c6/b2c_1a_signinup/oauth2/v2.0/authorize?state=NzZDNkNBRkMtOUYwOC00RTZBLUE5MkYtQTNFRDVGNTQ3MUNG&x-client-Ver=0.2.2&prompt=select_account&response_type=code&code_challenge_method=S256&x-client-OS=12.4.1&scope=https%3A%2F%2Fgruenbeckb2c.onmicrosoft.com%2Fiot%2Fuser_impersonation+openid+profile+offline_access&x-client-SKU=MSAL.iOS&code_challenge=O4VpgqiL9USQ6q2IDloYGnAnn2Wi_BUP4tdoSbQj0Bo&x-client-CPU=64&client-request-id=FDCD0F73-B7CD-4219-A29B-EE51A60FEE3E&redirect_uri=msal5a83cc16-ffb1-42e9-9859-9fbf07f36df8%3A%2F%2Fauth&client_id=5a83cc16-ffb1-42e9-9859-9fbf07f36df8&haschrome=1&return-client-request-id=true&x-client-DM=iPhone
2021.03.26 13:10:33 4: 'HTTP/1.1 200 OK
Cache-Control: no-store, must-revalidate, no-cache
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 153897
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
x-ms-gateway-requestid: cbb0aa85-2f5c-476c-afab-1f70d1948194
X-UA-Compatible: IE=edge
X-Request-ID: 24e9822d-16e8-4861-92ff-cac3d7ef2a74
X-Build: 1.0.1985.1
Set-Cookie: x-ms-cpim-csrf=ggg==; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-cache|u64i99HOq8I=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-trans=dfgh0=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:32 GMT
Connection: keep-alive'

2021.03.26 13:10:33 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-csrf=dfdQ Wert = Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:33 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-cache|dfgfg=RmA= Wert .8pBp0QQKsYTu64i99HOq8I= Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:33 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-trans Wert ddfn0= Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:33 4: 'oxfgHQ=='
'StateProperties=ffgfg'
'/ffgfg98c6/B2C_1A_SignInUp'
'B2C_1A_SignInUp'

2021.03.26 13:10:33 5: 'x-ms-cpim-cache|li99HOq8I=; x-ms-cpim-csrf=dfdf0In0='

2021.03.26 13:10:33 4: [WasserFee] Processing Queue: login
2021.03.26 13:10:33 4: [WasserFee] - Read password from file
2021.03.26 13:10:33 5: Generated URL is https://gruenbeckb2c.b2clogin.com/a58c6/B2C_1A_SignInUp/SelfAsserted?tx=StateProperties=dfgfgfgfQ&p=B2C_1A_SignInUp

2021.03.26 13:10:34 5: Websocket msg: OP:1 LEN:11 MASK:0 FIN:1
2021.03.26 13:10:34 5: [WasserFee] Received from DevIo: {"type":6}
2021.03.26 13:10:34 4:  / {"status":"200"}'HTTP/1.1 200 OK
Cache-Control: private
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 136
Content-Type: text/json; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
x-ms-gateway-requestid: 568966ec-1b11-4f46-825b-bd2c8f1719c8
Set-Cookie: x-ms-cpim-csrf=ggg==; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-cache|u64i99HOq8I=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-trans=dfgh0=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:34 GMT
Connection: close'

2021.03.26 13:10:34 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-cache|lylpjogwyuis_8rd1-8qd
2021.03.26 13:10:34 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-trans Wert eyJUX0RJQyI6W3si
2021.03.26 13:10:34 5: ================='x-ms-cpim-cache|lylpjogwyuis_8rd1-8qda_0=m1.TvuHYfRlR8v7DBiM.yH

Header:'HTTP/1.1 200 OK
Cache-Control: private
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 136
Content-Type: text/json; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
x-ms-gateway-requestid: 568966ec-1b11-4f46-825b-bd2c8f1719c8
Set-Cookie: x-ms-cpim-csrf=ggg==; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-cache|u64i99HOq8I=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-trans=dfgh0=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:34 GMT
Connection: close'

2021.03.26 13:10:34 5: ================='x-ms-cpim-cache|lylpjogwy'


2021.03.26 13:10:34 4: [WasserFee] Processing Queue: getCode
2021.03.26 13:10:34 5: Calling https://gruenbeckb2c.b2clogin.com/a50-76e51a3098c6/B2C_1A_SignInUp/api/CombinedSigninAndSignup/confirmed?csrf_token=MzlCK2p_1A_SignInUp
2021.03.26 13:10:34 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-sso:gruenbeckb2c.onmicrosoft.com_0=m1.j4pqDn35FPd4Nv16PRCA= Wert .0; secure; HttpOnly
2021.03.26 13:10:34 4: WasserFee: GetCookies parsed Cookie: domain Wert gruenbeckb2c.b2clogin.com Rest expires=Sat, 26-Mar-2011 12:10:34 GMT; path=/; secure; HttpOnly
2021.03.26 13:10:34 4: WasserFee: GetCookies parsed Cookie: domain Wert gruenbeckb2c.b2clogin.com Rest expires=Sat, 26-Mar-2011 12:10:34 GMT; path=/; secure; HttpOnly
2021.03.26 13:10:34 4:  / <html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="msQ">here</a>.</h2>
</body></html>

2021.03.26 13:10:34 5: 'nzQ'

2021.03.26 13:10:34 4: [WasserFee] Processing Queue: initToken
2021.03.26 13:10:34 4:  / {"access_token":"8GQ","id_token":"WeQyJg","token_type":"Bearer","not_before":1616760634,"expires_in":3600,"expires_on":1616764234,"resource":"5a83cc16-ffb1-427f36df8","client_info":"qKj72jxQ","refresh_token_expires_in":7776000}
2021.03.26 13:10:34 5: {
  'expires_in' => 3600,
  'token_type' => 'Bearer',
  'client_info' => 'ewOThjNiJ9',
  'id_token' => 'ebRp4EF8eQyJg',
  'not_before' => 1616760634,
  'refresh_token' => 'dfgfgQ',
  'scope' => 'https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation',
  'resource' => '5a83cc7f36df8',
  'refresh_token_expires_in' => 7776000,
  'access_token' => 'eGHDeZxHG4F4N2GQ',
  'expires_on' => 1616764234
}

2021.03.26 13:10:34 4: [WasserFee] - Read password from file
2021.03.26 13:10:40 5: Websocket msg: OP:1 LEN:11 MASK:0 FIN:1
2021.03.26 13:10:40 5: [WasserFee] Received from DevIo: {"type":6}
2021.03.26 13:10:44 4: [WasserFee] - Read password from file
2021.03.26 13:10:44 4: [WasserFee] Processing Queue: authenticate
2021.03.26 13:10:44 5: 1st Generated URL is https://gruenbeckb2c.b2clogin.com/a50d35c98c6/b2c_1a_signinup/oauth2/v2.0/authorize?state=NzZDNkNUNG&x-client-Ver=0.2.2&prompt=select_account&response_type=code&code_challenge_method=S256&x-client-OS=12.4.1&scope=https%3A%2F%2Fgruenbeckb2c.onmicrosoft.com%2Fiot%2Fuser_impersonation+openid+profile+offline_access&x-client-SKU=MSAL.iOS&code_challenge=aDIhN4HqPN41kbwxJ-PsJS-Ncn5-651wSqXAWBSLk1k&x-client-CPU=64&client-request-id=FDCD0F73-B7CD-4219-A29B-EE51A60FEE3E&redirect_uri=msal%3A%2F%2Fauth&client_id=5a83cc16-6df8&haschrome=1&return-client-request-id=true&x-client-DM=iPhone
2021.03.26 13:10:44 4: 'HTTP/1.1 200 OK
Cache-Control: no-store, must-revalidate, no-cache
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 153892
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
x-ms-gateway-requestid: 06a0eb9c
X-UA-Compatible: IE=edge
X-Request-ID: 640b6528
X-Build: 1.0.1985.1
Set-Cookie: x-ms-cpim-csrf=ggg==; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-cache|u64i99HOq8I=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
Set-Cookie: x-ms-cpim-trans=dfgh0=; domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:44 GMT
Connection: keep-alive'

2021.03.26 13:10:44 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-csrf
2021.03.26 13:10:44 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-cach
2021.03.26 13:10:44 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-tran
2021.03.26 13:10:44 4: 'd03aDN6SG
'StateProperties=efQ'
'/a50d352f-7-a-7698c6/B_12_SignInUp'
'B2C_1A_SignInUp'

2021.03.26 13:10:44 4: [WasserFee] Processing Queue: login
2021.03.26 13:10:44 4: [WasserFee] - Read password from file
2021.03.26 13:10:44 5: Generated URL is https://gruenbeckb2c.b2clogin.com/a50d33098c6/B2C_1A_SignInUp/SelfAsserted?tx=StateProperties=eyJC_1A_SignInUp

2021.03.26 13:10:45 5: Websocket msg: OP:1 LEN:11 MASK:0 FIN:1
2021.03.26 13:10:45 5: [WasserFee] Received from DevIo: {"type":6}
2021.03.26 13:10:45 4:  / {"status":"200"}'HTTP/1.1 200 OK
Cache-Control: private
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 136
Content-Type: text/json; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
x-ms-gateway-requestid: 17b3c7
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:45 GMT
Connection: close'

2021.03.26 13:10:45 4: WasserFee: GetCookies parsed C Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:45 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-trans Wert  Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:45 5: ================='x-ms-cpim-cache|43elzo21_0='

Header:'HTTP/1.1 200 OK
Cache-Control: private
Allow: OPTIONS,TRACE,GET,HEAD,POST
Content-Length: 136
Content-Type: text/json; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
x-ms-gateway-requestid: 17ba50f3a-c216438213c7
X-Frame-Options: DENY
Public: OPTIONS,TRACE,GET,HEAD,POST
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Date: Fri, 26 Mar 2021 12:10:45 GMT
Connection: close'


2021.03.26 13:10:45 4: [WasserFee] Processing Queue: getCode
2021.03.26 13:10:45 5: Calling https://gruenbeckb2c.b2clogin.com/a50d_SignInUp/api/CombinedSigninAndSignup/confirmed?csrf_token=d==&tx=StateProperties=eMTY1MjgifQ&p=B2C_1A_SignInUp
2021.03.26 13:10:45 4: WasserFee: GetCookies parsed Cookie: x-ms-cpim-sso:gruenbeckb2c.onmicrosoft.com_0=m1.fbiGQVaFYEaLcO2OLpw6Ww= Wert .0.SGodr Rest domain=gruenbeckb2c.b2clogin.com; path=/; secure; HttpOnly
2021.03.26 13:10:45 4: WasserFee: GetCookies parsed Cookie: domain Wert gruenbeckb2c.b2clogin.com Rest expires=Sat, 26-Mar-2011 12:10:45 GMT; path=/; secure; HttpOnly
2021.03.26 13:10:45 4: WasserFee: GetCookies parsed Cookie: domain Wert gruenbeckb2c.b2clogin.com Rest expires=Sat, 26-Mar-2011 12:10:45 GMT; path=/; secure; HttpOnly
2021.03.26 13:10:45 4:  / <html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="msal5f8%3a%2f%2fauth%2f%3fstate%3dNUNG%26trustFrameworkPolicy%3dB2C_1A_SignInUp%26code%3deyJraNRaLKyk3iQyxf_nafKAdn6MxrEmcWiyMoOuwjCcAPcFy_osZe9LBTRtMQs6E_yEXupafk2wZkuzPS7bpD71EydjFxSj4YDy-94PGozVZXIKIMUYbeeQXlunP6pdeKjHmiEGZuvQw.1AcSwmRGQrpIxu01.d301GGtH6Qn1o7MVpBlYQC_iXPwQKf7Qw8vwOfGuBSA">here</a>.</h2>
</body></html>

2021.03.26 13:10:45 4: [WasserFee] Processing Queue: initToken
2021.03.26 13:10:46 4:  / {"access_token":"EfroqcXg","id_token":"NDFiNTWrw","token_type":"Bearer","not_before":1616760646,"expires_in":3600,"expires_on":1616764246,"resource":"5a83cc16-ffb1-42e9-9859-9fbf07f36df8","client_info":"eyJ1aWQNiJ9","scope":"https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation","refresh_token":"Yq96Q","refresh_token_expires_in":7776000}
2021.03.26 13:10:46 5: {
  'expires_in' => 3600,
  'id_token' => '216UcfY75SdWrw',
  'token_type' => 'Bearer',
  'client_info' => 'eJ9',
  'refresh_token' => 'e9y2NyV_I71MUAFd1Q.03-uoKQAjh6UcRMmAgGwAQ',
  'not_before' => 1616760646,
  'scope' => 'https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation',
  'expires_on' => 1616764246,
  'resource' => '5a83ccfbf07f36df8',
  'refresh_token_expires_in' => 7776000,
  'access_token' => 'eyg'
}

2021.03.26 13:10:46 4: [WasserFee] - Read password from file
2021.03.26 13:10:46 4: [WasserFee] Processing Queue: getRefreshToken
2021.03.26 13:10:46 4:  / {"access_token":"frog","id_token":"Y75SdWrw","token_type":"Bearer","not_before":1616760646,"expires_in":3600,"expires_on":1616764246,"resource":"5a83cc16-ffb1-42e9-9859-9fbf07f36df8","client_info":"eyJ1aWQiOiI2MjZiMjAzNi1hN2VjLTRlNjQtOWM1MS0zZjQxYjU1OTVmMDEtYjJjXzFhX3NpZ25pbnVwIiwidXRpZCI6ImE1MGQzNWMxLTIwMmYtNGRhNy1hYTg3LTc2ZTUxYTMwOThjNiJ9","scope":"https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation","O7w","refresh_token_expires_in":7776000}
2021.03.26 13:10:46 5: {
  'resource' => '5a83cc16-ff-9fbf07f36df8',
  'refresh_token_expires_in' => 7776000,
  'access_token' => 'eyJIe5DuYBfroqcXg',
  'expires_on' => 1616764246,
  'scope' => 'https://gruenbeckb2c.onmicrosoft.com/iot/user_impersonation',
  'refresh_token' => 'eyLO7w',
  'not_before' => 1616760646,
  'expires_in' => 3600,
  'client_info' => 'eyJ9',
  'token_type' => 'Bearer',
  'id_token' => 'eydWrw'
}

2021.03.26 13:10:46 4: [WasserFee] - Read password from file
2021.03.26 13:10:46 4: [WasserFee] Processing Queue: getDevices
2021.03.26 13:10:46 4:  / [{"type":21,"hasError":false,"id":"softliQ.D/BS50045672","series":"softliQ.D","serialNumber":"BS50045672","name":"WasserFee","register":true}]
2021.03.26 13:10:46 5: [
  {
    'id' => 'softliQ.D/BS50045672',
    'name' => 'WasserFee',
    'type' => 21,
    'series' => 'softliQ.D',
    'serialNumber' => 'BS50045672',
    'register' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
    'hasError' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
  }
]

2021.03.26 13:10:46 4: [WasserFee] - Read password from file
2021.03.26 13:10:46 4: [WasserFee] Processing Queue: getInfo
2021.03.26 13:10:47 4:  / {"hardwareVersion":"00000004","lastService":"2021-01-18","mode":2,"nextRegeneration":"2021-03-27T02:00:00","nominalFlow":2.1,"rawWater":17.0,"softWater":4.0,"softwareVersion":"0002.0028","errors":[],"salt":[{"date":"2021-03-25","value":217},{"date":"2021-03-24","value":0},{"date":"2021-03-23","value":220}],"timeZone":"+01:00","water":[{"date":"2021-03-25","value":287},{"date":"2021-03-24","value":211},{"date":"2021-03-23","value":297}],"unit":1,"startup":"2021-01-18","type":21,"hasError":false,"id":"softliQ.D/BS50045672","series":"softliQ.D","serialNumber":"BS50045672","name":"WasserFee","register":true}
2021.03.26 13:10:47 5: {
  'type' => 21,
  'name' => 'WasserFee',
  'serialNumber' => 'BS50045672',
  'softwareVersion' => '0002.0028',
  'startup' => '2021-01-18',
  'id' => 'softliQ.D/BS50045672',
  'softWater' => '4',
  'lastService' => '2021-01-18',
  'rawWater' => '17',
  'timeZone' => '+01:00',
  'errors' => [],
  'nextRegeneration' => '2021-03-27T02:00:00',
  'unit' => 1,
  'nominalFlow' => '2.1',
  'hasError' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'hardwareVersion' => '00000004',
  'series' => 'softliQ.D',
  'water' => [
               {
                 'date' => '2021-03-25',
                 'value' => 287
               },
               {
                 'value' => 211,
                 'date' => '2021-03-24'
               },
               {
                 'date' => '2021-03-23',
                 'value' => 297
               }
             ],
  'mode' => 2,
  'register' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'salt' => [
              {
                'date' => '2021-03-25',
                'value' => 217
              },
              {
                'date' => '2021-03-24',
                'value' => 0
              },
              {
                'value' => 220,
                'date' => '2021-03-23'
              }
            ]
}

2021.03.26 13:10:47 4: [WasserFee] - Read password from file
2021.03.26 13:10:47 4: [WasserFee] Processing Queue: getParam
2021.03.26 13:10:47 4:  / {"$pending":[],"pallowemail":true,"pallowpushnotification":true,"pdlstauto":true,"pntpsync":false,"pcfcontact":true,"pknx":false,"pmonflow":false,"pmondisinf":true,"pledatsaltpre":true,"pbuzzer":false,"prescaplimit":50,"pcurrent":700,"pload":2000,"pforcedregdist":4,"pmaintint":365,"pfreqregvalve":200,"pfreqblendvalve":300,"pledbright":63,"pvolume":0,"prawhard":17,"psetsoft":4,"ppratesoftwater":0.0043,"pprateblending":0.004,"pprateregwater":0.0039000000000000003,"psetcapmo":20,"psetcaptu":20,"psetcapwe":20,"psetcapth":20,"psetcapfr":20,"psetcapsa":20,"psetcapsu":20,"pnomflow":2.1,"ppressurereg":0,"pmonregmeter":20,"pmonsalting":75,"prinsing":9.5,"pbackwash":12,"pwashingout":4,"pminvolmincap":0.17,"pmaxvolmincap":0.49,"pminvolmaxcap":0.8200000000000001,"pmaxvolmaxcap":2.15,
"pmaxdurdisinfect":4,"pmaxresdurreg":0,"pbuzzfrom":"08:00","pbuzzto":"18:00","pmailadress":"service@gruenbeck.de","pname":"Grünbeck Service","ptelnr":"+49 9074 - 41333","pmode":2,"pmodemo":2,"pmodetu":1,"pmodewe":1,"pmodeth":1,"pmodefr":2,"pmodesa":3,"pmodesu":3,"planguage":1,"phunit":1,"pregmode":1,"pprogout":1,"pprogin":0,"ppowerfail":0,"pmodedesinf":1,"pled":2,"pregmo1":"02:00","pregmo2":"07:00","pregmo3":"07:00","pregtu1":"07:00","pregtu2":"07:00","pregtu3":"07:00","pregwe1":"07:00","pregwe2":"07:00","pregwe3":"07:00","pregth1":"07:00","pregth2":"07:00","pregth3":"07:00","pregfr1":"07:00","pregfr2":"07:00","pregfr3":"07:00","pregsa1":"--:--","pregsa2":"--:--","pregsa3":"--:--","pregsu1":"--:--","pregsu2":"--:--","pregsu3":"--:--","pmonblend":0,"poverload":0}
2021.03.26 13:10:47 4: {
  'pmodeth' => 1,
  'pmodesu' => 3,
  'pled' => 2,
  'pledatsaltpre' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'pwashingout' => 4,
  'pregtu3' => '07:00',
  'pcurrent' => 700,
  'pregsa2' => '--:--',
  'pregth2' => '07:00',
  'pminvolmincap' => '0.17',
  'pprateregwater' => '0.0039',
  'pregmo2' => '07:00',
  'pregtu2' => '07:00',
  'pregfr2' => '07:00',
  'psetcapsa' => 20,
  'psetcapmo' => 20,
  'pregsu3' => '--:--',
  'pregsa3' => '--:--',
  'pledbright' => 63,
  'pcfcontact' => $VAR1->{'pledatsaltpre'},
  '$pending' => [],
  'ppratesoftwater' => '0.0043',
  'pregfr1' => '07:00',
  'pbackwash' => 12,
  'pprogin' => 0,
  'pregwe2' => '07:00',
  'pregwe3' => '07:00',
  'pdlstauto' => $VAR1->{'pledatsaltpre'},
  'pforcedregdist' => 4,
  'pprogout' => 1,
  'pmodemo' => 2,
  'ppowerfail' => 0,
  'pbuzzfrom' => '08:00',
  'poverload' => 0,
  'psetcaptu' => 20,
  'pbuzzto' => '18:00',
  'psetcapth' => 20,
  'pmaxdurdisinfect' => 4,
  'pmonflow' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
  'ptelnr' => '+49 9074 - 41333',
  'phunit' => 1,
  'pmodefr' => 2,
  'psetcapfr' => 20,
  'pmonblend' => 0,
  'pbuzzer' => $VAR1->{'pmonflow'},
  'pprateblending' => '0.004',
  'pmaintint' => 365,
  'pregfr3' => '07:00',
  'pmodedesinf' => 1,
  'pmailadress' => 'service@gruenbeck.de',
  'prinsing' => '9.5',
  'prawhard' => 17,
  'pminvolmaxcap' => '0.82',
  'planguage' => 1,
  'pregmo1' => '02:00',
  'pnomflow' => '2.1',
  'pregth1' => '07:00',
  'pknx' => $VAR1->{'pmonflow'},
  'pfreqblendvalve' => 300,
  'pmaxvolmincap' => '0.49',
  'pntpsync' => $VAR1->{'pmonflow'},
  'pvolume' => 0,
  'psetcapwe' => 20,
  'ppressurereg' => 0,
  'pallowemail' => $VAR1->{'pledatsaltpre'},
  'pmondisinf' => $VAR1->{'pledatsaltpre'},
  'psetsoft' => 4,
  'pmaxresdurreg' => 0,
  'pname' => "Gr\x{c3}\x{bc}nbeck Service",
  'pmodesa' => 3,
  'prescaplimit' => 50,
  'pallowpushnotification' => $VAR1->{'pledatsaltpre'},
  'pregwe1' => '07:00',
  'pmodetu' => 1,
  'pmode' => 2,
  'pregsa1' => '--:--',
  'pmodewe' => 1,
  'pregmode' => 1,
  'pregtu1' => '07:00',
  'pmonregmeter' => 20,
  'pmaxvolmaxcap' => '2.15',
  'pregsu2' => '--:--',
  'psetcapsu' => 20,
  'pload' => 2000,
  'pregmo3' => '07:00',
  'pfreqregvalve' => 200,
  'pregth3' => '07:00',
  'pregsu1' => '--:--',
  'pmonsalting' => 75
}

2021.03.26 13:10:47 4: [WasserFee] Processing Queue: negotiate
2021.03.26 13:10:47 4:  / {"url":"https://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck","accessToken":"eyJhbGciOiJIUzI1NiIsImtpZCI6IjI3MDY4NzYwMCIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiI2MjZiMjAzNi1hN2VjLTRlNjQtOWM1MS0zZjQxYjU1OTVmMDEiLCJuYmYiOjE2MTY3NjA2NDcsImV4cCI6MTYxNjc2NDI0NywiaWF0IjoxNjE2NzYwNjQ3LCJhdWQiOiJodHRwczovL3Byb2QtZXUtZ3J1ZW5iZWNrLXNpZ25hbHIuc2VydmljZS5zaWduYWxyLm5ldC9jbGllbnQvP2h1Yj1ncnVlbmJlY2sifQ.zwL5vwDL_yX-TLYu9qmvOksI-S_rvRW856AaocyFVPY"}
2021.03.26 13:10:47 5: {
  'url' => 'https://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck',
  'accessToken' => 'eyJhbcyFVPY'
}

2021.03.26 13:10:47 5: [WasserFee] wsUrl is https://prod-eu-gruenbeck-signalr.service.signalr.net/client/?hub=gruenbeck
2021.03.26 13:10:48 4:  / {"negotiateVersion":0,"connectionId":"qmGeqxY9A1f19b7041","availableTransports":[{"transport":"WebSockets","transferFormats":["Text","Binary"]},{"transport":"ServerSentEvents","transferFormats":["Text"]},{"transport":"LongPolling","transferFormats":["Text","Binary"]}]}
2021.03.26 13:10:48 5: {
  'negotiateVersion' => 0,
  'connectionId' => 'qmGeqx19b7041',
  'availableTransports' => [
                             {
                               'transport' => 'WebSockets',
                               'transferFormats' => [
                                                      'Text',
                                                      'Binary'
                                                    ]
                             },
                             {
                               'transferFormats' => [
                                                      'Text'
                                                    ],
                               'transport' => 'ServerSentEvents'
                             },
                             {
                               'transport' => 'LongPolling',
                               'transferFormats' => [
                                                      'Text',
                                                      'Binary'
                                                    ]
                             }
                           ]
}

2021.03.26 13:10:48 4: [WasserFee] Calling realtime for enter
2021.03.26 13:10:48 4: [WasserFee] Calling realtime for refresh
2021.03.26 13:10:48 5: Websocket msg: OP:1 LEN:417 MASK:0 FIN:1
2021.03.26 13:10:48 5: [WasserFee] Received from DevIo: {"type":1,"target":"SendMessageToDevice","arguments":[{"id":"BS50045672","type":"Current","ibuiltindev":true,"isncu":"202006251449","mregpercent1":58,"mregpercent2":0,"mremregstep":0,"mregstatus":0,"mresidcap1":44,"mresidcap2":129,"mrescapa1":0.277,"mrescapa2":0.8,"mmaint":298,"mflow1":0,"mflow2":0,"mflowreg1":0,"mflowreg2":0,"mflowblend":0,"mstep1":4950,"mstep2":0,"mcurrent":0,"mreswatadmod":0,"msaltrange":99}]}
2021.03.26 13:10:48 4: [WasserFee] Received from socket: {"type":1,"target":"SendMessageToDevice","arguments":[{"id":"BS50045672","type":"Current","ibuiltindev":true,"isncu":"202006251449","mregpercent1":58,"mregpercent2":0,"mremregstep":0,"mregstatus":0,"mresidcap1":44,"mresidcap2":129,"mrescapa1":0.277,"mrescapa2":0.8,"mmaint":298,"mflow1":0,"mflow2":0,"mflowreg1":0,"mflowreg2":0,"mflowblend":0,"mstep1":4950,"mstep2":0,"mcurrent":0,"mreswatadmod":0,"msaltrange":99}]}
2021.03.26 13:10:48 4: [WasserFee] - Read password from file
2021.03.26 13:10:48 5: Websocket msg: OP:1 LEN:481 MASK:0 FIN:1
2021.03.26 13:10:48 5: [WasserFee] Received from DevIo: {"type":1,"target":"SendOneTimeMessageToDevice","arguments":[{"id":"BS50045672","type":"CurrSlow","ibuiltindev":true,"isncu":"202006251449","mcountreg":43,"mcountwater1":23583,"mcountwater2":0,"mcountwatertank":34,"msaltusage":13.3353,"mflowexc":0,"mflowexc2reg1":0,"mflowexc1reg2":0,"mlifeadsorb":0,"mhardsoftw":5,"mcapacity":10.8,"maverage":99,"mstddev":0,"mmax":1,"mpress":0,"mtemp":0,"mflowmax":2.15,"mflowmax1reg2":0,"mflowmax2reg1":0,"mendreg1":"02:20","mendreg2":"00:00"}]}
2021.03.26 13:10:48 4: [WasserFee] Received from socket: {"type":1,"target":"SendOneTimeMessageToDevice","arguments":[{"id":"BS50045672","type":"CurrSlow","ibuiltindev":true,"isncu":"202006251449","mcountreg":43,"mcountwater1":23583,"mcountwater2":0,"mcountwatertank":34,"msaltusage":13.3353,"mflowexc":0,"mflowexc2reg1":0,"mflowexc1reg2":0,"mlifeadsorb":0,"mhardsoftw":5,"mcapacity":10.8,"maverage":99,"mstddev":0,"mmax":1,"mpress":0,"mtemp":0,"mflowmax":2.15,"mflowmax1reg2":0,"mflowmax2reg1":0,"mendreg1":"02:20","mendreg2":"00:00"}]}
2021.03.26 13:10:48 4: [WasserFee] - Read password from file

Adriano

Hallo, bei mir klappt es wieder. Musste einmal das Passwort wieder setzen im Modul und dann hat es geklappt. Vielen Dank!

KernSani

Zitat von: Obi-Wan am 26 März 2021, 13:39:18
gerne:

sieht ja dem Log zufolge gut aus jetzt :-)  Vorgestern hat er nicht regeneriert, gestern schon, nd du hast das Ding seit 18.01.2021 ;-)

Grüße,

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Sascha_F

Hi zusammen,

ich habe gerade eben erst gemerkt, dass ich "disconnected" bin. Ich habe ein Presence-Device, da sich die Grünbeck ab und zu mal aus dem WLAN verabschiedet - das hatte ich aber nicht im Blick :-D

Bei mir läuft es jetzt auch wieder :)   Natürlich hatte ich es mal wieder nicht auf dem Schirm, nach einer neuen Version zu schauen - im Kopf habe ich immer nur, dass ich mit FHEM-Update ja immer auf dem aktuellsten Stand bin - fail ;-)

@Oli: Vielen Dank für den schnellen Fix! :)

Das Modul läuft doch (soweit ich das zumindest beurteilen kann) so, wie es soll - spricht etwas dagegen, es ganz normal ins FHEM-Update mit einzuhängen (oder ist das ein größerer Aufwand - sorry, hab ich keine Ahnung von).

Ich hatte Grünbeck vor nem Jahr oder so mal angeschrieben (zugegeben mit wenig Hoffnung) und gefragt, ob bei einem zukünftigen Update nicht wenigstens die Möglichkeit besteht, einen MQTT-Client zu integrieren - ich bin kein Fan von Cloud-Lösungen...
Unterm Strich ist es natürlich meine eigene Schuld, da ich mich im Vorfeld zwar informiert habe, aber übersehen hatte, dass der Webserver nur im Vorgängermodell implementiert war = Lehrgeld... ;-)

Viele Grüße ++ schönes WE ++ schon mal schöne Ostertage!
Sascha

KernSani

Zitat von: Sascha_F am 26 März 2021, 19:16:16
Das Modul läuft doch (soweit ich das zumindest beurteilen kann) so, wie es soll - spricht etwas dagegen, es ganz normal ins FHEM-Update mit einzuhängen (oder ist das ein größerer Aufwand - sorry, hab ich keine Ahnung von).
Tatsächlich wollte ich das Update gestern ins SVN einchecken und habe dann gemerkt, dass es da noch garnicht ist :-D Werde ich die nächsten Tage mal machen.

Zitat von: Sascha_F am 26 März 2021, 19:16:16
Unterm Strich ist es natürlich meine eigene Schuld, da ich mich im Vorfeld zwar informiert habe, aber übersehen hatte, dass der Webserver nur im Vorgängermodell implementiert war = Lehrgeld... ;-)
Da sind wir schon zwei :-D
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

So, habe noch ein paar Bugfixes gemacht, Doku ergänzt und das Ding eingecheckt. Damit ist dieser Thread geschlossen. Weitere Diskussion bitte hier: https://forum.fhem.de/index.php/topic,119939.0.html
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...