JUDO Steuerung

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

Vorheriges Thema - Nächstes Thema

Guybrush

Hallo zusammen,

ich hab für Geräte des Herstellers JUDO ein Modul entwickelt, mit dem man übers lokale Netz ohne Cloud alle wesentlichen Funktionen der JUDO Geräte steuern/lesen kann, welche die JUDO REST API unterstützen.

Die Einbindung erfolgt über
define <name> JUDO <IP/HOST>

Im Anschluss muss über das Attribut "username" der Benutzername und über das setting password, dass Passwort gesetzt werden. Das Passwort wird verschlüsselt im Key Value Store von FHEM abgelegt. Das Modul aktualisiert im angegebenen Attribut Interval (default 60s) die Verbrauchswerte und schreibt bei Tageswechsel die Gesamtverbräuche des Tages für Statistikzwecke.

Die SSL Schnittstelle kann über das Attribut ssl genutzt werden. Allerdings hat mein Gerät ungültige Zertifikate, so dass es Fehler gibt. Im lokalen Netz ist SSL aber nun auch nicht wirklich wichtig. Muss ich mir jedenfalls noch anschauen. Gleiches gilt für die Statistik Funktionen der JUDO Api. Diese funktionieren nicht wie in der Doku beschrieben, weshalb diese auch nicht implementiert sind. Die sind aber auch nicht wirklich wichtig, da Statisken direkt über FHEM abgebildet werden sollten. Der Salzverbrauch ist noch nicht passend, da die internen Werte ohne Verbrauch ständig schwanken.  Doku fehlt auch noch, wird aber demnächst ergänzt.

Meine i-Soft Pro funktioniert damit jedenfalls sehr gut. Wenn jemand ein anderes JUDO Gerät hat, dann sollte es auch funktionieren - jedenfalls die Funktionen, die auch die i-soft PRO hat, wobei andere Geräte weniger Funktionalität haben. Feedback ist willkommen.

ch.eick

Moin,
ich habe jetzt auch mal einen ersten Versuch gestartet, um meine HTTPMOD Kopplung zu ersetzen.

Beim reload werden leider die Crypto Biliotheken nicht gefunden
Can't locate Crypt/OpenSSL/RSA.pm in @INC (you may need to install the Crypt::OpenSSL::RSA module) (@INC entries checked: ./FHEM/lib ./lib fhem.p/lib fhem.p/FHEM/lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /usr/src/app/core/lib/perl5/5.38.3/aarch64-linux-gnu /usr/src/app/core/lib/perl5/5.38.3 /usr/src/app/core/lib/perl5/aarch64-linux-gnu /usr/src/app/core/lib/perl5 /usr/src/app/3rdparty/lib/perl5/5.38.3/aarch64-linux-gnu /usr/src/app/3rdparty/lib/perl5/5.38.3 /usr/src/app/3rdparty/lib/perl5/aarch64-linux-gnu /usr/src/app/3rdparty/lib/perl5 /usr/local/lib/perl5/site_perl/5.38.3/aarch64-linux-gnu /usr/local/lib/perl5/site_perl/5.38.3 /usr/local/lib/perl5/vendor_perl/5.38.3/aarch64-linux-gnu /usr/local/lib/perl5/vendor_perl/5.38.3 /usr/local/lib/perl5/5.38.3/aarch64-linux-gnu /usr/local/lib/perl5/5.38.3) at ./FHEM/50_JUDO.pm line 14.
BEGIN failed--compilation aborted at ./FHEM/50_JUDO.pm line 14.

Ich verwende der FHEM docker Container und da sind sie jedoch bereits drin.
root@raspberrypi:/opt/fhem# apt list libcrypt-openssl-bignum-perl libcrypt-openssl-rsa-perl
Listing... Done
libcrypt-openssl-bignum-perl/stable 0.09-2+b1 arm64
libcrypt-openssl-rsa-perl/stable 0.33-3+b1 arm64

Es ist eine JUDO_iSoft Plus von ca. 2015, die jedoch mal wegen eines bekannten Controllerproblems eine aktuellere Baugruppe bekommen hat.
contract_InitDate 2022-08-12 14:31
version_HardwareVersion 5.10

Integriert hatte ich das nach dieser Blog Seite.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Guybrush

du hast bookworm installiert? welche perl version? auch arm64?

ch.eick

#3
Zitat von: Guybrush am 04 Juni 2025, 19:58:12du hast bookworm installiert? welche perl version? auch arm64?
Es ist der standard FHEM Docker Container
root@raspberrypi:/opt/fhem# uname -a
Linux raspberrypi 6.12.25+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.25-1+rpt1 (2025-04-30) aarch64 GNU/Linux

Aus der .yaml
services:
  fhem:
    build:
      context: .
      dockerfile_inline: |
        FROM ghcr.io/fhem/fhem-docker:latest
        RUN <<EOF
          LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get update
          LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends python3-pandas python3-pymysql python3-sqlalchemy python3-sklearn python3-sklearn-lib
          LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends libcryptx-perl libpbkdf2-tiny-perl libcrypt-urandom-perl
          LC_ALL=C apt-get autoremove -qqy && LC_ALL=C apt-get clean
          pip3 install fhem --break-system-packages
        EOF
    pull_policy: build

    restart: always
    network_mode: host
    privileged: true
#  devices:
#    - "/dev/ttyACM0:/dev/ttyACM0"
    volumes:
      - "./fhem/:/opt/fhem/"
#    - "./fhem/contrib/configDB/configDB.conf:/opt/fhem/configDB.conf"
    environment:
      FHEM_UID: 6061
      FHEM_GID: 6061
      TIMEOUT: 10
      RESTART: 1
      TELNETPORT: 7072
      TZ: Europe/Berlin
#    CONFIGTYPE: configDB
    depends_on:
      - "mysql"
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Guybrush

libssl-dev ist installiert?

im zweifel auch mal libnet-ssleay-perl libcrypt-ssleay-perl libio-socket-ssl-perl installieren

ch.eick

Zitat von: Guybrush am 04 Juni 2025, 22:12:29libssl-dev ist installiert?

im zweifel auch mal libnet-ssleay-perl libcrypt-ssleay-perl libio-socket-ssl-perl installieren
Das wäre mir im laufenden FHEM zuviel ausprobieren und für eine Testinstanz habe ich momentan keine Zeit, sorry.
Die von Dir jetzt aufgelisteten Bibliotheken werden doch im Modul garnicht mit use aufgerufen, sondern nur die beiden, die im vorherigen Post nicht gefunden werden. Da verstehe ich nicht die Vorgehensweise beim Testen. Für mich ist es jetzt auch nicht so dringend, da die HTTPMOD Abfrage ja seit Jahren stabil läuft.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Guybrush

ich versuch dir nur zu helfen... es kann sein, dass die abhängigkeiten der pakete nicht passen. daher mal die pakete installieren. wenns dann immer noch so ist kannst du die ja wieder entfernen. das ist überhaupt kein problem das live zu machen

ch.eick

Zitat von: Guybrush am 05 Juni 2025, 08:36:44ich versuch dir nur zu helfen... es kann sein, dass die abhängigkeiten der pakete nicht passen. daher mal die pakete installieren. wenns dann immer noch so ist kannst du die ja wieder entfernen. das ist überhaupt kein problem das live zu machen
Okay, danke,
Ich stell das nur etwas zurück:-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

klausg

#8
Hallo,

ich habe eine Judo Dosieranlage "i-dos eco" und dein Modul damit getestet. Das Connectivity Modul im Gerät scheint das selbe zu sein und dein Modul kann connecten. Ich bekomme in fhem ein paar Readings mit 0 als Wert aber STATE bleibt ??. Ich hätte Interesse mit Dir das Modul zu erweitern so, dass auch meine Judo Dosieranlage unterstützt wird. Welche Infos braucht amn dazu über das Gerät und wie kann ich sie auslesen?

VG Klaus

Guybrush

in jedem fall die defs und readings mit werten von deiner i-dos

klausg

#10
Ich hab das i-dos eco Gerät definiert wie oben beschrieben:
define Judo JUDO 192.168.XXX.YYY
attr Judo username admin
set Judo password ccccccc

Ich erhalten dann die Readings:
usageSaltDay              0 g    2025-06-08 14:46:01
usageSaltDayTotal         0      2025-06-08 23:59:59
usageSoftWaterDay         0 l    2025-06-08 14:46:01
usageSoftWaterDayTotal    0      2025-06-08 23:59:59
usageTotalWaterDay        0 l    2025-06-08 14:46:01
usageTotalWaterDayTotal   0      2025-06-08 23:59:59

Komisch sind die Timestamps an jedem 2. Reading. 14:46 Uhr passt für gerade. 23:49 Uhr ist in der Zukunft. Die Werte sind alle 0. Hast Du eine Idee dazu?

Guybrush

funktioniert denn

get Judo model
get Judo version

da müssten dann 2 neue readings mit modell und version erscheinen

klausg

Wenn ich die Abfragen per GUI mache kommt keine Reaktion. Gebe ich die get-Befehle in der Kommandline ein, dann bekomme ich ein unvollständiges Fenster mit einem OK Button. Es gibt keine neuen Readings.

Guybrush

dann musst du mal verbose 5 setzen und das nochmal ausführen. die logs davon brauche ich dann

klausg

Ok - klar. Ich muss mir nur erst eine Test-Instanz von fhem bauen. Ich hatte bisher in meiner produktiven Installation getestet. In deren Logfile findest du nichts bzw. zu viel. Ich melde mich wenn ich die Test-Instanz am Laufen habe.