Hauptmenü

HTTPMOD - JUDO isoft Save

Begonnen von ch.eick, 09 November 2020, 09:28:04

Vorheriges Thema - Nächstes Thema

tobi01001

Zitat von: SebastianStorb am 14 Juli 2022, 20:18:30
%JUDO_serial%

Mit der Seriennummer bzw. %JUDO_serial% ist wahrscheinlich irgendwo noch ein Copy&Paste Problem.

Aber: Die Einstellung wird nur im Bereich
https://www.myjudo.eu / Ju-Control / ->Einstellungen->Wasserwunschhärte
eingestellt.
Eine Übernahme in den Normalbetrieb unter
https://www.myjudo.eu / Ju-Control / ->Betriebsstaus ->Wunschwasserhärte
erfolgt leider nicht.
Hier muss erst eine andere Wasserszene z.B. Duschen eingestellt werden. Wenn dann wieder Normalbetrieb eingestellt wird übernimmt die JU die Wunschwasserhärte in den Normalbetrieb.

Das Problem sind die Spielereien mit den Wasserszenen. Da passiert offenbar mehr als ein einfacher HTTP-Request. Entweder in der Web-App oder im Hintergrund oder in der Kombination.
Daher verzichte ich auch auf die Wasserszenen. Nach ein paar Stunden / Tagen erholt sich die Anlage auf wundersame Weise - zumindest bei mir.
Wenn man über HTTPMod nicht an den Wasserszenen rumstellt, sondern nur die "normale" Wasserhärte bedient, funktioniert es bei mir wunderbar.

Zitat
https://www.myjudo.eu/interface/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&group=register&command=showlocation
https://www.myjudo.eu/interface/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&group=register&command=show&application=JC
https://www.myjudo.eu/interface/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&group=register&command=get device data

Das sind die normalen zyklischen Aufrufe. "get device data" ist der den wir für die meisten Daten (zum Empfang) verwenden.

Zitat
--> Die Anlage hängt sich auf. Der Code funktioniert nur wenn auch nicht
Was auch noch nicht 100%ig geht ist das Problem, dass ich es bei den Judo Szenen (die ich wirklich praktisch finde) noch immer etwas hakelig ist. Ich bekomme es nicht hin den 01.01.1970 Code einzupflegen.
Ja, sobald man über HTTPMOD bzw. direkten URL Aufruf eine andere Szene als "normal" einstellt, verhakt sich irgendwas im System. Ob bei allen Szenen oder nur manchen, weiß ich nicht.

Zitat
Hier der Auszug aus dem Logfile (mit dem ich nichts anfangen kann bzw. mir ist nicht klar was ich ändern muss, damit es funktionieren könnte).

2022.07.16 08:18:55 5: JUDO_iSoft: set called with Resthaerte 6
2022.07.16 08:18:55 5: JUDO_iSoft: set found option Resthaerte in attribute set09Name
2022.07.16 08:18:55 5: JUDO_iSoft: checkRange for SetFn checks 6 against min 1
2022.07.16 08:18:55 5: JUDO_iSoft: checkRange for SetFn checks 6 against max 10
2022.07.16 08:18:55 4: JUDO_iSoft: set will now set Resthaerte -> 6
2022.07.16 08:18:55 5: JUDO_iSoft: AddToQueue adds type set09 to URL https://%JUDO_ipaddress%/interface/?token=%token%&group=register&command=get%20device%20data, no data, no headers, retry 0, initial queue len: 0
2022.07.16 08:18:55 5: JUDO_iSoft: HandleSendQueue called from AddToSendQueue, qlen = 1
2022.07.16 08:18:55 5: JUDO_iSoft: Replace called for type set09, regex (?^:%token%), mode reading, value token input: https://%JUDO_ipaddress%/interface/?token=%token%&group=register&command=get%20device%20data
2022.07.16 08:18:55 5: JUDO_iSoft: Replace: reading value is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2022.07.16 08:18:55 5: JUDO_iSoft: Replace: match for type set09, regex (?^:%token%), mode reading, value token, input: https://%JUDO_ipaddress%/interface/?token=%token%&group=register&command=get%20device%20data, result is https://%JUDO_ipaddress%/interface/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&group=register&command=get%20device%20data

...

2022.07.16 08:18:55 4: JUDO_iSoft: HandleSendQueue sends set09 with timeout 5 to https://www.myjudo.eu/interface/?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxx&group=register&command=get%20device%20data, No Data, No Header
2022.07.16 08:18:55 5: JUDO_iSoft: ReadCallback called from __ANON__
2022.07.16 08:18:55 4: JUDO_iSoft: Read callback: request type was set09 retry 0,
header: HTTP/1.1 200 OK


Hier wird "get device data" über einen set-Befehl aufgerufen. Das scheint wenig sinnvoll und sieht nicht aus als ob das funktionieren wird.
Deine Device Definition wäre hilfreich um zu schauen.

Wenn ich etwas mehr Zeit finde, erstelle ich noch eine etwas generischere Definition. Im Moment ist schwierig.

Zitat
Ich befürchte, dass das Modul oder die Anlage oder die Kommunikation zwischen meinem Modul und Anlage nicht mehr funktioniert. Auch wenn ich im Judo-Webforntend etwas einstelle. z.B. Wasserszene Duschen, springt es zwar zunächst um, aber nach etwa 1 Minute ändert sich sie Wasserhärte. Gestern zu 12 Grad dH heute ist es 6 Grad dH.
Ein paar Stunden/Tage warten und nichts verstellen... Erholt sich (zumindest bei mir) wieder.

Zitat
Kannst Du mir Deine FHEM Definition für die Judo Logdatei sagen? Ich bekomme auch das nicht hin und muss immer mühsam im globalen Logfile nachsehen.
Verstehe die Frage nicht. Zeig mal bitte deine Device-Definition (der Inhalt von "Raw Definition" ohne die ganzen setstate's) sollte genügen. Oder ein "list JUDO_iSoft" - jeweils ohne sensible Daten.

Gruß,
Tobias
FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.

SebastianStorb

#46
Hallo Tobi,

ich wollte Dir noch ein Feedback und in allen Punkten Recht geben. Nachdem ich meine Experimente gelassen habe und einfach das ausprobiert habe, was Du schon herausgefunden hattest, bin ich wirklich zu Frieden!

- Die Anlage hat sich ("wie von Geisterhand") wieder erholt (24h? bzw. am nächsten Morgen), nachdem ich keine Wasserszene mehr gesendet habe.
- Wenn keine Wasserszenen gesendet werden funktioniert das einfache Ändern des Härtegrades hervorragend.

Nochmals 1000 Dank für Deine Hilfe!!!

tobi01001

#47
Kurzes Update, falls es wen interessiert ;)

Ich bekam seit ungefähr 20.12. keine Daten mehr (was ich erst recht spät bemerkte...). Über Chrome hatte ich mich problemlos einloggen können und auch eine entsprechende JSON Antwort bekommen. Funktionierte also prinzipiell. Über lynx vom fhem server aus dann auch. Nur HTTPMOD wollte nicht...

Long Story short:
Der Judo-Server möchte einen User-Agent im Request Header haben. Wie der heißt ist ihm aktuell ziemlich egal. Ich nenne ihn Hans. Ein
attr JUDOHTTPMODDEVICENAME requestHeader1 User-Agent: Hans
genügt und es kommen wieder Daten...

Edit: Nachdem ich nicht weiß, wie man den Header (User-Agent) allgemein für HTTPMOD setzen kann, musste ich das auch noch für get und sid nachziehen:
attr JUDO_iSoft_2 getHeader3 User-Agent: Hans
attr JUDO_iSoft_2 requestHeader1 User-Agent: Hans
attr JUDO_iSoft_2 sid01Header User-Agent: Hans


LG,
Tobias

FHEM@UbuntuServer on Lenovo ThinkCentre M900 [i5-6500T / 8GB RAM] MySQL-DbLog, Grafana, FTUI3 / HmIP incl. CCU3 / LGESS / Wärempumpe über TA CMI und CANoE / Shellies u.v.m.