WCM-COM nach Mqtt Gateway.

Begonnen von uli69, 19 Mai 2020, 12:06:59

Vorheriges Thema - Nächstes Thema

uli69

Hallo,

nachdem mir das WCM-Modul von Elektrolurch "https://forum.fhem.de/index.php/topic,17718.0.html" jahrelang gute Dienste geleistet hat, habe ich mit diesen Informationen ein Gateway für die WCM-COM nach Mqtt entwickelt. Damit können dann die Informationen nicht nur von FHEM sondern auch von allen Mqtt-fähigen Komponenten genutzt werden. Das Gateway ist in C++ geschrieben. Die erste Entwicklerversion 0.0.1 kann derzeit die Informationen nur lesen. Das Schreiben ist aber noch geplant.

Den Sourcecode gibt es unter https://git.uli-eckhardt.de/?p=WcmToMqtt.git;a=summary -> git clone https://git.uli-eckhardt.de/WcmToMqtt.git.

Tiff1112

Hallo,

vielen Dank für die Mühe. ich bin seit einiger Zeit am testen hab aber nach anfänglichen Problemen mit fehlenden Packages nun ein weitere.. make install wird nicht ausgeführt.
vielleicht habe ich ja etwas übersehen und würde mich über hinweise freuen.

beste Grüße

uli69

Gibt es Fehlermeldungen? Da die Config-Dateien nach /etc kopiert werden braucht "make install" root-rechte.

Tiff1112

Hallo,
anbei:



[smarthome@SmartHomeNG ~/WcmToMqtt/build]$ make install
make: *** Keine Regel, um ,,install" zu erstellen.  Schluss.



Auf blauen dunst manuell kopiert was soweit auch funktioniert. danke.

uli69

Was für eine Distribution nutzt du denn? Und könntest du noch mal den Output von cmake posten?

Tiff1112

Hallo,

ich nutze ein normales raspian (buster)



[smarthome@SmartHomeNG ~/WcmToMqtt/build]$ cmake ..
CMake Warning at CMakeLists.txt:8 (find_package):
  By not providing "FindCatch2.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Catch2", but
  CMake did not find one.

  Could not find a package configuration file provided by "Catch2" with any
  of the following names:

    Catch2Config.cmake
    catch2-config.cmake

  Add the installation prefix of "Catch2" to CMAKE_PREFIX_PATH or set
  "Catch2_DIR" to a directory containing one of the above files.  If "Catch2"
  provides a separate development package or SDK, be sure it has been
  installed.


WARNING,CATCH2 not found, automatic tests ignored
-- Configuring done
-- Generating done
-- Build files have been written to: /home/smarthome/WcmToMqtt/build



bis auf die Warnung IO.
an sich funktioniert es auch nach händischem kopieren, also keine große sache.

Tiff1112

Moin,

eine Sache ist mir noch aufgefallen, wenn ich die Readings anpasse auf einen Weishaupt Öl-Brenner habe ich ein sehr eigenartiges Verhalten der Applikation. trotz korrekter Syntax werden manche werte erst gelesen wenn welche voran oder nachgestellt sind. was kann dafür der grund sein?
Mein Ziel ist es natürlich nur die relevanten Werte zu lesen und die Werte aus der Solaranlage anzupasse da hier die Readings nicht übereinstimmen.

Kann jemand das Verhalten bestätigen oder mir tips zur Fehlersuche geben?

uli69

Hattest du via git clone den Sourcecode geholt? ich hatte eine Fehlkonfiguration im Git-Repository so das nur der initiale Commit geclont wurde. Mache mal ein "git log", falls das nur einen commit enthält, dann bitte noch mal per git pull updaten. Eventuell löst das dann alle deine Probleme.

Git-Web hat natürlich alle commits schön brav angezeigt >:( ::)

Tiff1112

#8
anbei:


[smarthome@SmartHomeNG ~/WcmToMqtt]$ git log
commit c20572fd7ef2a2e8c8ef0b0e61797f20678378e0 (HEAD -> master, tag: 0.0.1, origin/master, origin/HEAD)
Author: Ulrich Eckhardt <uli@uli-eckhardt.de>
Date:   Tue May 19 11:09:05 2020 +0200

    Initial Version
[smarthome@SmartHomeNG ~/WcmToMqtt]$



grüße!

EDIT

Es scheint tatsächlich so zu sein. :) Möglicherweise alle Probleme gelöst. Und ich muss gestehen ich habe schon verzweifelt versucht den code nachzuvollziehen ob ggf. irgendwo einschränkungen zu irgendwelchen adresse sind :D
Die Verwirrung tut mir leid.

Vielen Dank für die Arbeit.

EDIT2 Auf die Idee muss man erst mal kommen das wäre mir im leben nicht eingefallen

EDIT3 Mir sind noch convertierungs"fehler" aufgefallen.
Beispielsweise werden die Erträge der Solaranlage nicht korrekt dargestellt. Wie würde das gelöst?
Gibt es da schon Ansätze?
Ebenso werden zwar die Daten für solar abgefragt aber nicht an den Broker übermittelt.
ich habe die "testgroup" in "solar" umbenannt, das hat aber nicht geholfen.
Gleiches gilt für die Verbrauchsdaten.

Schönen Abend.
Grüße,
Stefan

uli69

Zitat von: Tiff1112 am 10 September 2020, 20:16:29
Mir sind noch convertierungs"fehler" aufgefallen.
Beispielsweise werden die Erträge der Solaranlage nicht korrekt dargestellt. Wie würde das gelöst?
Gibt es da schon Ansätze?
Ich habe leider keine Solaranlage, ich kann das deswegen nicht testen.
Zitat von: Tiff1112
Ebenso werden zwar die Daten für solar abgefragt aber nicht an den Broker übermittelt.
ich habe die "testgroup" in "solar" umbenannt, das hat aber nicht geholfen.
Gleiches gilt für die Verbrauchsdaten.
Die Daten sind mal nach bestem Wissen und Gewissen konvertiert, aber da ich die nie getestet habe, sind die alle abgeschaltet. Zum Einschalten ist in der wcm_data.json jeweils die Zeile "interval" : -1 der entsprechenden Readings zu löschen. In der config.json kannst du dann eine Gruppe solar anlegen (oder testgroup nach solar umbenennen).

Tiff1112

#10
Zitat von: uli69 am 11 September 2020, 16:02:01
Ich habe leider keine Solaranlage, ich kann das deswegen nicht testen. Die Daten sind mal nach bestem Wissen und Gewissen konvertiert, aber da ich die nie getestet habe, sind die alle abgeschaltet. Zum Einschalten ist in der wcm_data.json jeweils die Zeile "interval" : -1 der entsprechenden Readings zu löschen. In der config.json kannst du dann eine Gruppe solar anlegen (oder testgroup nach solar umbenennen).

gern mache ich das mal und würde auch die datei erweitern/anpassen. vielleicht lässt sich das ja noch gemeinsam lösen.
Danke auf jeden Fall für die schnelle Hilfe, das Intervall habe ich glatt übersehen zumal ich anfangs auch noch die initiale  wcm_data.json hatte, diese unterscheidet sich ja doch an einigen stellen.
Ansonten funktioniert alles bis jetzt sehr gut.
Was ich allerdings ein wenig schade finde ist das die Query groups nicht(mehr) an das Präfix angehangen werden. ich dachte ich hätte das in der initial version gesehen. Zur Übersichtlichkeit und strukturierung fände ich das "schöner".


Gibt es noch andere die deine Lösung nutzen?

Schöne Grüße aus dem Harz.
Stefan

uli69

Zitat von: Tiff1112 am 11 September 2020, 16:42:38
gern mache ich das mal und würde auch die datei erweitern/anpassen. vielleicht lässt sich das ja noch gemeinsam lösen.
Erweiterungen nehme ich gerne an  :). Für deine Erweiterungen die spezifisch für die Ölheizung sind solltest du am besten eine neue Gruppe anlegen. Und alle bei allen Readings der Solaranlage die du testen konntest halt die Interval-Zeile löschen. Dann kannst du mir das gerne als Patch schicken, ich baue das dann ein.
Zitat von: Tiff1112
Was ich allerdings ein wenig schade finde ist das die Query groups nicht(mehr) an das Präfix angehangen werden. ich dachte ich hätte das in der initial version gesehen. Zur Übersichtlichkeit und strukturierung fände ich das "schöner".
Mal schauen, eventuell mach ich das konfigurierbar.
Zitat von: Tiff1112
Gibt es noch andere die deine Lösung nutzen?
Das WCM-COM Modul scheint nicht so häufig in Verwendung zu sein, bisher hat sich noch niemand weiteres gemeldet.

Viele Grüße
Uli

Tiff1112

hallo,

das ist eigentlich recht schade. Gerade die Möglichkeit über eine definierte Schnittstelle Daten der Anlagen zu holen erscheint mir doch sicherer als sich direkt auf den ebus zu hängen. aber gut das muss jeder für sich entscheiden.
Ich werde die nächsten Tage die Solardaten testen und die Ölheizungsparameter ergänzen. viele Dinge sind identisch und nur von der Bezeichnung unterschiedlich.

Über die genannten Änderungen würde ich mich sehr freuen ;)

uli69

Zitat von: Tiff1112 am 11 September 2020, 16:42:38
Was ich allerdings ein wenig schade finde ist das die Query groups nicht(mehr) an das Präfix angehangen werden.
Es gib jetzt eine neue Konfigurationsoption "group_in_mqtt_path" in der config.json. Wenn der Parameter auf true gesetzt wird, dann wird die Gruppe wieder an das Präfix angehängt.

Tiff1112

Funktioniert prima und strukturiert die Nachrichten im Broker. Ich persönlich finde das so übersichtlicher. Danke!