JUDO Steuerung

Begonnen von Guybrush, 17 Mai 2025, 19:10:08

Vorheriges Thema - Nächstes Thema

Guybrush

#30
wie das so ist ohne testen..  :P  fehler sollte mit der version im Anhang behoben sein. Läuft bei mir jedenfalls

klausg

Ist jetzt ok, aber commissioningDate auch nach einem get 104.62.57737.

Guybrush

mach mal
get Judo model
und danach nochmal commissioningDate abfragen

modell sollte eigentlich beim verbinden automatisch abgefragt werden. Wenn model nichts zurückliefert, dann brauch ich mal den Wert von
http://admin:xxxxx@192.168.77.239/api/rest/FF00

klausg

get Judo model liefert nichts zurück. Es gibt auch kein reading zu model. Nach get Judo model bleibt das commissioningDate immer noch "104.62.57737".

http://admin:xxxxx@192.168.77.239/api/rest/FF00
{"data": "41"}

Guybrush

#34
Zitat von: klausg am 09 Juni 2025, 16:25:36get Judo model liefert nichts zurück. Es gibt auch kein reading zu model. Nach get Judo model bleibt das commissioningDate immer noch "104.62.57737".

http://admin:xxxxx@192.168.77.239/api/rest/FF00
{"data": "41"}

mit der neuen Datei im Anhang sollte es nun gehen. Danach sollte auch das Inbetriebnahmedatum passen.

klausg

Beinahe. Jetzt ist das Datum 03.05.125.

Guybrush


klausg


Guybrush

wenn du magst, dann schick mir mal die werte folgender adressen+werte (bitte immer beide paare, da ich das zum abgleich zwecks richtiger kodierung brauche - müssten ansich alle werte auch in der app stehen):

Datum+Uhrzeit vom Gerät
http://admin:xxxxx@192.168.77.239/api/rest/6100

Status
http://admin:xxxxx@192.168.77.239/api/rest/4300

Dosierung
http://admin:xxxxx@192.168.77.239/api/rest/6300

Betriebart Pumpe
http://admin:xxxxx@192.168.77.239/api/rest/5300

ich bau dann bei Gelegenheit die Sonderfunktionen der i-dos ins Modul ein

klausg

Datum+Uhrzeit vom Gerät
http://admin:xxxxx@192.168.77.239/api/rest/6100:
{"data": "090619112703"}
09.06.2025 17:39:55

Status
http://admin:xxxxx@192.168.77.239/api/rest/4300:
{"data": "02000001000000000000000000000000000000380068010000aa130000"}
?? sehe ich in der App nicht

Dosierung
http://admin:xxxxx@192.168.77.239/api/rest/6300:
{"data": "0102"}
minimal (es gibt minimal, normal, maximal)
Betriebart Pumpe
http://admin:xxxxx@192.168.77.239/api/rest/5300:
{"data": ""}
?? auch nicht in der App zu ersehen

Guybrush

#40
teste mal die neue Version. Damit sollten nun folgende Kommandos bei der i-dos funktionieren:

get Judo status
get Judo datetime
get Judo dosage

die Api ist leider nicht gut dokumentiert. Status liefert einige Werte zurück und legt neue readings an. Ob die passen, bzw was die einzelnen values bedeuten kann ich nicht bei allen beurteilen. waterFlow/concentration etc sind klar, aber operatingMode & circuitMode sagen mir nichts. Möglicherweise ist erstes der Betriebsmodus der Pumpe (ein,aus,auto,manuell).

über
set Judo datetime 2025-06-09 23:43:00
solltest du auch das Datum/Uhrzeit setzen können. das ist vielleicht nützlich um die zeit mit fhem zu synchronisieren:
set Judo datetime {FmtDateTime(time)}

kannst ja mal testen und feedback geben. testen kann ichs leider nicht, da ich keine i-dos hab

klausg

Super - danke! Teste ich heute im Laufe des Tages und gebe dir Rückmeldung. Ich habe beim Stöbern im Netz eine Doku zum Judo RestAPI gefundet. Darin sind zur i-dos ein paar interessante Punkte erwähnt. Die Art der Salzlösung (Jul-W, etc.), die größe der Verpackung, die verbleibende Restmenge und Meldung falls der Behälter leer ist sind interessant. Ich schau mal was ich dazu beitragen kann.

Guybrush

Zitat von: klausg am 10 Juni 2025, 08:43:52Super - danke! Teste ich heute im Laufe des Tages und gebe dir Rückmeldung. Ich habe beim Stöbern im Netz eine Doku zum Judo RestAPI gefundet. Darin sind zur i-dos ein paar interessante Punkte erwähnt. Die Art der Salzlösung (Jul-W, etc.), die größe der Verpackung, die verbleibende Restmenge und Meldung falls der Behälter leer ist sind interessant. Ich schau mal was ich dazu beitragen kann.

die doku habe ich. die ist leider nicht gut. im vergleich zu anderen herstellern aber zumindest brauchbar. bin ja froh dass die überhaupt was haben. ohne freie schnittstelle hätte ich mir die judo aber auch nicht gekauft

klausg

Wow. Da hast du viel getan. Toll was jetzt geht.

Ich hatte heute morgen einen Crash von fhem. Ich glaube wegen des Tagwechsels. Im Log habe ich diese Fehlermeldung gefunden:
Usage: POSIX::strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1) at ./FHEM/50_JUDO.pm line 542.

Ansonsten gibt es ein paar kleine Ungenauigkeiten. Ich bekomme als dosageType Jul-C angezeigt. Das Gerät gibt aber wie für die Api beschrieben 102 zurück (JUL-W, 6l). Ist vielleicht ein Problem mit der Byte-Order. Das Reading dosageLitres ist bei mir nicht vorhaden. In deinem Code ist der readingsSingleUpdate dazu direkt nach dosageType.
Für dosageRemaining bekomme ich 56l. Muss man wahrscheinlich durch 10 teilen. Da ist die Doku wieder mal zu oberflächlich.

Die folgenden Readings werden nicht updated bzw. haben einen Timestamp in der Zukunft. Siehe Screenshot.
usageSaltDay
usageSaltYesterday
usageSoftWaterDay
usageSoftWaterYesterday
usageSaltDay
usageSaltYesterday
usageSoftWaterDay
usageSoftWaterYesterday
usageTotalWaterYesterday

Wahrscheinlich betreffen die dein Gerät. Schau mal ob Du die für i-dos ausblenden kannst.

Toller Fortschritt.

Guybrush

das mit dem strftime fehler ist schon behoben. wegen der Dosierung: Es ist 1:1 so umgesetzt wie in der API. Habs gerade nochmal getestet. Mit 0102 als Rückgabewert kommt JUL-W und 6l. Beides wird bei mir gesetzt. Versuchs daher mal mit der neuen Version. Restdosierung habe ich auch mal durch 10 geteilt. keine Ahnung ob das richtig ist... beobachte das mal. Ansonsten finde ich nichts zu den fehler/warncodes. wenn du dort welche am gerät hast, dann poste diese bitte hier mit dem wert aus warningCode/errorCode.

dass die readings usage* einen Zeitstempel in der Zukunft haben ist nicht kritisch. Ich bau da bei Gelegenheit noch was ein, dass die erst bei Tageswechsel geschrieben werden. Derzeit passiert das schon direkt beim Start wenn diese nicht vorhanden sind.

Nur die Funktionen / Readings anzeigen, die das jeweilige Gerät unterstützt ist etwas aufwendiger. Das wollte ich schon umsetzen, ist aber etwas Aufwand, da ich hier eine map aus geräteid->adresse bauen muss. das mach ich die Tage. Das ist aber nicht kritisch