CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Der CCU-Jack als REST- und MQTT-Schnittstelle für die CCU und virtuelle Geräte für das IoT

Moderator: Co-Administratoren

cebulon
Beiträge: 18
Registriert: 29.01.2019, 14:56

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von cebulon » 21.03.2021, 19:44

Hallo Mathias,

Du hast mir bei der Version 1.0.1 schon mal auf die Sprünge geholfen. Diese Version lief danach einige Wochen auf einem separaten Raspi absolut stabil.

Nun habe ich die neue Version 1.1.0 in dasselbe Umfeld geladen, weil ich auf der RaspberryMatic-CCU auch CuxD verwende. In „ccu-jack(-default).cfg“ ist mir aufgefallen, daß unter „certificates“ einige Dinge voreingestellt sind, die fehlen bzw. zu Konflikten führen. Es gibt da auch Widersprüche zwischen der mitgelieferten Dokumention und den Erklärungen auf der Projektseite. Ich habe versucht, das Richtige daraus zu machen, denn diese Zertifizierung scheint jetzt zu klappen.

Trotzdem klemmt es, wie man aus dem beigefügten Log erkennt. In der CCU sind alle genannten Ports freigegeben. Ich kann nicht erkennen, warum der „ReGaHss program explorer“ startet und gleich wieder stoppt.

Ebenso wenig kann ich mir die Fehlermedung in der letzten Zeile erklären. Der Port taucht als „listener“ einige Zeilen vorher auf – braucht er als „server“ einen anderen Port?

Ich hänge die Konfigurationsdatei und das Log als Anlage an und bitte um Prüfung.

mfg Gerd
Dateianhänge
ccu-jack.cfg.txt
(760 Bytes) 46-mal heruntergeladen
ccu-jack.log
(2.65 KiB) 36-mal heruntergeladen

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von Mathias » 21.03.2021, 21:23

Die Fehlermeldung

Code: Alles auswählen

2021-03-21 18:05:24|ERROR  |main           |Running MQTT server failed: listen tcp :1883: bind: address already in use
besagt, dass der Netzwerkport auf Deinem separaten Raspi bereits durch ein anderes Programm oder auch einem doppelt gestarteten CCU-Jack belegt ist.

Mit dem Befehl

Code: Alles auswählen

netstat -lnp|grep 1883
findest Du heraus, welcher Prozess den Port belegt.
Es gibt da auch Widersprüche zwischen der mitgelieferten Dokumention und den Erklärungen auf der Projektseite.
Bitte die Stellen nennen, dann kann ich sie korrigieren.
Ich kann nicht erkennen, warum der „ReGaHss program explorer“ startet und gleich wieder stoppt.
Das "Shutting down" bezieht sich auf dem CCU-Jack insgesamt und nicht nur auf den „ReGaHss program explorer“.
Ebenso wenig kann ich mir die Fehlermedung in der letzten Zeile erklären. Der Port taucht als „listener“ einige Zeilen vorher auf – braucht er als „server“ einen anderen Port?
Das hängt beides zusammen: Ein Server-Programm horcht auf einem Listener-Port auf eingehende Verbindungen.

cebulon
Beiträge: 18
Registriert: 29.01.2019, 14:56

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von cebulon » 22.03.2021, 13:45

Hallo Mathias,

kaum macht man etwas richtig, schon funktioniert es…

Das Problem saß mal wieder VOR dem Computer.

Ich hatte versäumt, den autostart von "mosquitto" sachgerecht totzulegen – und nach einem reboot des Raspi war "mosquitto" unbemerkt gestartet und belegte den Port. Herzlichen Dank für Deine zielgerichtete Hilfe. Werde mir die Sequenz gut merken!

Zu den Widersprüchen: in der Datei „ccu-jack-default.cfg ist nach dem Download der Software u.a. folgendes zu finden:

Code: Alles auswählen

"Certificates": {
    "AutoGenerate": false,
    "CACertFile": "",
    "CAKeyFile": "",
    "ServerCertFile": "/etc/config/server.pem",
    "ServerKeyFile": "/etc/config/server.pem"
  },
Auch wenn man die IP-Adressen korrekt eingetragen hat, führt das zu einem Programmabbruch mit Hinweisen auf die Certificates im Log.

In der GitHub Dokumentation unter README.md steht jedoch was anders:

Code: Alles auswählen

 "Certificates": {
    "AutoGenerate": true,
    "CACertFile": "cacert.pem",
    "CAKeyFile": "cacert.key",
    "ServerCertFile": "server.pem",
    "ServerKeyFile": "server.key"
  },
Das erschien mir plausibler – und hat dann ja auch funktioniert. Nochmals besten Dank

mfg Gerd

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von Mathias » 22.03.2021, 21:46

cebulon hat geschrieben:
22.03.2021, 13:45
Zu den Widersprüchen: in der Datei „ccu-jack-default.cfg ist nach dem Download der Software u.a. folgendes zu finden:

Code: Alles auswählen

"Certificates": {
    "AutoGenerate": false,
    "CACertFile": "",
    "CAKeyFile": "",
    "ServerCertFile": "/etc/config/server.pem",
    "ServerKeyFile": "/etc/config/server.pem"
  },
Das ist eine angepasste Konfigurationsdatei für die Installation als Add-On auf einer CCU.

Du hast den besonderen Fall, dass Du eigentlich nur die ausführbare Datei aus dem Add-On benötigst, damit Du den CCU-Jack unter Raspbian starten kannst. Generell kann der CCU-Jack aber auch bedenkenlos auf der CCU installiert werden.

cebulon
Beiträge: 18
Registriert: 29.01.2019, 14:56

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von cebulon » 23.03.2021, 19:31

Hallo Mathias,

danke für deinen Kommentar. Ich habe mit „mosquitto“ auf dem CCU-Raspi einige Reinfälle erlebt und war daher skeptisch, so etwas sofort mit „ccu-jack“ zu versuchen.

Nachdem „ccu-jack“ in der aktuellen Version nun auf einem separaten Raspi einwandfrei läuft, werde ich die alternative Lösung auf der CCU auch probieren.

mfg Gerd

hell@wurstgurke.de
Beiträge: 17
Registriert: 27.06.2018, 21:26
Hat sich bedankt: 1 Mal

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von hell@wurstgurke.de » 24.03.2021, 21:52

Hallo Mathias,

ich habe hier ein Frage die anscheinend für allen anderen Teilnehmern hier klar ist... für mich leider nicht. Ich glaube, ich könnte mittel CCU-Jack meine Tasmota Geräte per RaspberryMatic und MQTT verwalten. (ggf unter zu hilfenahme von CUxD).

Ist das so möglich? Oder habe ich da was komplett falsch verstanden? Wenn es möglich und sinnvoll ist, mir ist das Vorgehen nicht klar. Lege ich den Endpunkt .. ja wo an? In der RaspberryMatic?

mfg Karsten
mfg Karsten

mg1234s
Beiträge: 12
Registriert: 27.12.2016, 20:07
Hat sich bedankt: 1 Mal

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von mg1234s » 24.03.2021, 23:18

Hallo Zusammen,

Ich würde mich meine Vorredner anschließen und hätte gerne ein paar Beispiele!

Ich habe z.b. ein Tasmota Gerät mit dem Namen Lampe und wenn ich in der Tasmota Console eingebe:

publish cmnd/lampe/power 1
publish cmnd/lampe/power toggle
publish cmnd/lampe/power 0

wird die Lampe eingeschaltet, geändert oder ausgeschaltet.

Gleichzeitig habe ich einen Homematic Lichtschalter
In der CCu Jack GUI wird er als
HM-LC-Sw1PBU-FM MEQ0675039:1 - STATE angezeigt

Darunter finde ich dann die Zeilen
mqttSetTopic device/set/MEQ0675039/1/STATE
mqttStatusTopic device/status/MEQ0675039/1/STATE

Also dachte ich mir, wenn ich in der Tasmota Console

publish device/set/MEQ0675039/1/STATE 0 eingebe schaltet er den Schalter aus. Geht leider nicht.

Auf der CCU -Jack Seite des Schalters kann ich den Wert 0 oder 1 auch setzen und er wir auch ausgeführt.

Was mache ich den Falsch? Und wie kann ich aus der CCU heraus Mqtt werte senden.

Beste Grüße mg1234s

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von Mathias » 28.03.2021, 17:55

hell@wurstgurke.de hat geschrieben:
24.03.2021, 21:52
ich habe hier ein Frage die anscheinend für allen anderen Teilnehmern hier klar ist... für mich leider nicht. Ich glaube, ich könnte mittel CCU-Jack meine Tasmota Geräte per RaspberryMatic und MQTT verwalten. (ggf unter zu hilfenahme von CUxD).
Das derzeitige Ziel vom CCU-Jack ist es, für andere Applikationen einen möglichst einfachen Zugriff auf die Datenpunkte der CCU zu ermöglichen.

Der umgekehrte Weg, wodurch die CCU auf Tasmota- oder Shelly-Geräte einfach zugreifen kann, wird durch den CCU-Jack noch nicht erleichtert, abgesehen von dem eingebetteten MQTT-Broker.

Da dies aber ein sehr häufiger Anwendungsfall ist, der zurzeit nur mit RedMatic oder CUxD/curl einigermaßen auf der CCU umsetzbar ist, und dann ist die Integration in der Logikschicht der CCU auch eher rudimentär, bin ich gerade noch eine neue Idee am evaluieren: Was wäre, wenn ein Tasmota/Shelly/irgendein MQTT-Gerät/Sensor genauso wie ein HM(IP)-Gerät auf der CCU aussieht und verwendbar wäre. Es wäre genauso bedienbar und in Programmen verwendbar. Direktverknüpfungen sind technisch natürlich nicht möglich. Ich denke, dass würde für viele Anwender einiges vereinfachen. Ein Klick und alle Tasmota/Shellies landen im Posteingang der CCU. Bis dahin ist natürlich noch einer weiter Weg.

Mathias
Beiträge: 1767
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 253 Mal
Kontaktdaten:

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von Mathias » 28.03.2021, 17:57

mg1234s hat geschrieben:
24.03.2021, 23:18

Code: Alles auswählen

publish device/set/MEQ0675039/1/STATE 0
Teste mal:

Code: Alles auswählen

publish device/set/MEQ0675039/1/STATE true
Ansonsten bitte mal mit einem MQTT-Client, z.B. "MQTT Explorer", nachschauen und ein Publish versuchen.

mg1234s
Beiträge: 12
Registriert: 27.12.2016, 20:07
Hat sich bedankt: 1 Mal

Re: CCU-Jack: REST-API/MQTT-Server/MQTT-CCU-Adapter

Beitrag von mg1234s » 28.03.2021, 20:25

Mathias hat geschrieben:
28.03.2021, 17:57
mg1234s hat geschrieben:
24.03.2021, 23:18

Code: Alles auswählen

publish device/set/MEQ0675039/1/STATE 0
Teste mal:

Code: Alles auswählen

publish device/set/MEQ0675039/1/STATE true
Ansonsten bitte mal mit einem MQTT-Client, z.B. "MQTT Explorer", nachschauen und ein Publish versuchen.
Danke!
publish device/set/MEQ0675039/1/STATE true
oder
publish device/set/MEQ0675039/1/STATE false

funktonieren.

Wie finde ich denn heraus, was ein device versteht?

Und gibt es eine Möglichkeit, dass ein Homematic Device bei Veränderung eine Nachricht publisht?
Dann könnte man aus einen Tasmota Gerät einfach zusätzlich daraus ein Hometmatic/Alexa Gateway machen.
(Einfach in Tasmota Relais eine Gpio zuordnen und dann per Rule die zwei Zeilen senden)
Das funktioniert bei mir auch schon, nur der Staus wird leider nicht von dem Homematic Gerät an das Tasmota Device übertragen, wenn man z.B. den Schalter mit der Hand einschaltet.)


Grüß mg1234s

Antworten

Zurück zu „CCU-Jack“