Neues Modul: 72_TA_CMI_JSON (Technische Alternative UVR16x2, UVR1611, CMI, ...)

Begonnen von delMar, 02 November 2018, 10:38:08

Vorheriges Thema - Nächstes Thema

Jo_mit_FHEM

Hallo zusammen,

ich habe unserer Heizungssteuereung mit einem CMI ausgestattet und wollte diese nun mit dem Modul TA_CMI_JSON in mein FHEM einbinden. Leider ohne Erfolg. Ich habe das Forum schon einmal durchsucht, bin aber auf keine Lösung gestoßen. Ich hoffe es kann mir jemand weiterhelfen.

Konfiguration:
  • UVR16x2 (Version 1.57) CAN Bus Koten 2
  • CMI-S (Version 1.41.3-B0.00-H1S) CAN Bus Koten 56

Über die Web-Oberfläche des CMI kann ich auf die UVR zugreifen.
Ich habe folgende Konfiguration:
defmod cmi TA_CMI_JSON 192.168.20.30 2 O
attr cmi password admin
attr cmi username admin

-> Fehlermeldung: error read from http://192.168.20.30:80 timed out


Ich habe versucht, den Fehler ein bisschen einzugrenzen. Scheinbar klappt das Anmelden mit Username / Passwort nicht richtig. Evtl ist dies kein Problem vom Modul TA_CMI_JSON sondern ein Grundsätzlichen.
Folgendes habe ich getestet:
  • Anlegen eines HTTPMOD:
    defmod cmi_Test HTTPMOD http://192.168.20.30/SD/lan_settings.txt 60
    bzw.
    defmod cmi_Test HTTPMOD http://192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O 90
    attr cmi_Test showBody 1

    -> Fehlermeldung: error read from http://192.168.20.30:80 timed out
  • Eingabe in Chrome:
    http://192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O
    http://192.168.20.30/SD/lan_settings.txt
    hier bekomme ich nach Eingabe der Anmelde-Daten (admin/admin) gültige Werte.

    -> funktioniert prinzipiell
  • Eingabe in de Linux Console auf dem FHEM Server:
    curl http://192.168.20.30/SD/lan_settings.txt
    curl http://192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O
    Antwort:
    <head><title>CMI Server Error</title></head><body><h2>Error 401 - Unauthorized Access</h2>You are not authorized to access this server.<hr><br><a title="www.ta.co.at"
    target="_blank" href="http://www.ta.co.at">www.ta.co.at</a>| &copy; Technische Alternative RT GmbH, Amaliendorf </body>

    Die gleiche Meldung bekomme ich auch in Chrome, wenn ich keine Anmeldedaten angebe
  • Nächster Versuch mit PW Übergabe:
    Chrome:  http://admin:admin@192.168.20.30/SD/lan_settings.txt
    Chrome:  http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O
    Console: curl http://admin:admin@192.168.20.30/SD/lan_settings.txt
    -> Richtige Rückgabe (Text file bzw JSON)

    Aber:
    HTTPMOD: http://admin:admin@192.168.20.30/SD/lan_settings.txt 60
    HTTPMOD: http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O  60
    -> Fehlermeldung: Timeout

    Console: curl http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O
    - Rückgabe:
    {"Header":{"Version":6,"Device":"87","Timestamp":1699102686},"Data":{},"Status":"TOO FEW ARGUMENTS","Status code":6}Der Befehl "jsonparam" ist entweder
    falsch geschrieben oderkonnte nicht gefunden werden.

Nun bin ich mit meinem Wissen am Ende. Irgendwie wird das PW von FHEM nicht richtig übermittelt, oder das CMI akzeptiert das nicht.
Für weitere Anregungen zur Fehlereingrenzung bin ich Dankbar.
Viele Grüße
Joachim


Jo_mit_FHEM

Hier noch ein Update:
Zitat von: Jo_mit_FHEM am 04 November 2023, 13:52:31Console: curl http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O
- Rückgabe:
{"Header":{"Version":6,"Device":"87","Timestamp":1699102686},"Data":{},"Status":"TOO FEW ARGUMENTS","Status code":6}Der Befehl "jsonparam" ist entweder
falsch geschrieben oderkonnte nicht gefunden werden.

Funktioniert doch. Man muss es nur richtig machen:
curl  "http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O"

delMar

Zitat von: Jo_mit_FHEM am 04 November 2023, 14:09:00Funktioniert doch. Man muss es nur richtig machen:
curl  "http://admin:admin@192.168.20.30/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O"

Was ist denn der Unterschied zwischen der funktionierenden und nicht funktionierenden Zeile?
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Jo_mit_FHEM

Hallo delMar
Zitat von: delMar am 04 November 2023, 14:39:05Was ist denn der Unterschied zwischen der funktionierenden und nicht funktionierenden Zeile?

Die Anführungszeichen um die Adresse

Maxl

Hallo,

kurze Frage, wie mache ich es damit man mehrere CAN Knoten auslesen kann, sobald ich zwei oder drei CMI-Knoten X=1..3 mit "define cmi1 TA_CMI_JSON 192.168.1.110 X I,O,D" definiere bekomme ich an einen oder zweien "TOO MANY REQUESTS".

Danke
FHEM auf Raspberry mit HM, HMC und AVR Netios.

delMar

Zitat von: Maxl am 30 November 2023, 12:19:40sobald ich zwei oder drei CMI-Knoten X=1..3 mit "define cmi1 TA_CMI_JSON 192.168.1.110 X I,O,D" definiere bekomme ich an einen oder zweien "TOO MANY REQUESTS".

Hallo,

Too Many Requests kriegst du dann, wenn du das öfter als 1x pro Minute machst.
Bei mehreren Geräten ist das leider tatsächlich ein Problem; liegt aber an der JSON-API, nicht am Modul.

Je nachdem, welche Daten du benötigst, gibts aber evtl Ausweichmöglichkeiten.
Wie zB hier im Wiki https://wiki.fhem.de/wiki/TA_CMI_UVR16x2_UVR1611 unter "Anzeige des Status der Ausgänge" beschrieben


Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Maxl

Hallo,

ok habe es so gelöst, das ich zyklisch alle paar min die Adressen hintereinander abfrage, funktioniert, alle Werte sind nun in FHEM.
Wie kann ich aber nun einen Eingang aus FHEM stimulieren, finde hierzu nur das "fixwertDigital" bzw. "fixwertAnalog".
Bedeutet das Eingänge können nicht überschrieben werden? Wie kann ich dann zum Beispiel in der UVR16xx einen beliebigen Fixwert
in CMI bekanngeben (Veroderung mit Eingang in TAPPS) um auf diese zugreifen zu können, das verstehe ich gerade noch nicht ganz.

Viele Grüße
FHEM auf Raspberry mit HM, HMC und AVR Netios.

delMar

Hallo Maxl,

dazu benötigst du das das CanOverEthernet Modul, denk ich:
https://wiki.fhem.de/wiki/CanOverEthernet

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Tueddelkopp

Hallo,
ich habe ein Problem mit diesem Modul seitdem ich gestern mein CMI auf die Firmware 1.42.1 upgedatet habe. Die Werte werden nicht mehr aktualisiert und ich bekomme "read from http://X.X.X.X:80 timed out".

Hat schon jemand die Firmware auf dem CMI und auch diese Probleme?

EDIT: Achso, wenn ich von der Linux Konsole aus mit wget und den Login Daten den entsprechenden API Aufruf starte dann bekomme ich die Daten geliefert. Ich kann in den Daten auch keinen Unterschied zu vorher feststellen. Ich nutze den "offiziellen" FHEM Docker Container.

Grüße
Rolf

delMar

Hallo Rolf,

"Timed out" ist eindeutig ein Netzwerkproblem.

Ist die Linux-Konsole auf dem Gerät, wo auch FHEM läuft?

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Tueddelkopp

Hallo Martin,

ja ich mache das auf der Konsole aus dem Container heraus. Die Kommunikation hat auch genau bis zum Firmware Update funktioniert und ab da nicht mehr.
Ich bin selbst IT-Admin allerdings ohne Programmierkenntnisse und habe ein bisschen versucht zu Diagnostizieren. Ich habe zum Test bei Versions den neuen API Level hinzugefügt und auch die neuen Einheiten. Geholfen hat es nicht. Erklären kann ich es mir auch nicht.

Edit: COE und auch Modbus over Ethernet zum gleichen CMI funktionieren auch noch.

Grüße
Rolf

delMar

Ok,
kennst du die Wiki-Seite vom Modul?
https://wiki.fhem.de/wiki/TA_CMI_UVR16x2_UVR1611

Auf der einen Seite wird die offizielle JSON-API verwendet.
Auf der anderen Seite greife ich auch Daten über eine API ab, die nicht "offiziell" ist, sondern nur vom Web-UI des CMI verwendet werden.
Kanns sein, dass genau diese Daten nicht mehr funktionieren, die von der offiziellen API aber schon?

Würde mit Firmware-Update und einer Änderung des UI zusammenpassen.

Ich kanns aktuell leider nicht testen, weil mein FHEM-Setup gerade tot ist.
Selber schuld, wenn man einen Raspberry Pi dafür verwendet....
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Tueddelkopp

Ich kenne die Wiki Seite. Ich rufe nur die Inputs und Outputs vom CMI ab. Ich habe diesen Verdacht aber auch schon gehabt und mal ausschließlich die Inputs abgerufen, das Resultat war das gleiche. Ich schaue nochmal ob ich noch was heraus finde was ich versuchen kann.
Einen Rollback der Firmware kann ich leider nicht machen weil ich dummerweise keine Datensicherung von der alten Firmware habe und mein CMI schon recht aufwändig konfiguriert ist.

Tueddelkopp

Im Log steht auch der Aufruf der fehlschlägt, es ist der normale API Aufruf

TA_CMI_JSON (cmi) - error while requesting http://X.X.X.X/INCLUDE/api.cgi?jsonnode=2&jsonparam=I,O&_=1702234144.11837 - read from http://X.X.X.X:80 timed out

Es gibt auch keine Firewall dazwischen, FHEM läuft im gleichen IP Netz wie das CMI. Ich habe 2 CMIs mit der UVR Steuerung verbunden weil mir die 32 ModbusTCP Eingäge nicht gereicht haben. Das Problem tritt mit beiden auf, ich Dussel habe natürlich vorschnell beide aktualisiert.

Tueddelkopp

Mir ist gerade aufgefallen das Jo_mit_FHEM im ersten Beitrag auf dieser Seite das gleiche Problem beschreibt, wenn auch mit einer 1.41.3 Firmware