Homematic Wettersensor emulieren

Hallo,
ich habe einen neuen Wettersensor HmIP-SWO-PR (Dreizack). Dieser spricht Homematic IP. Ich möchte den über ein emuliertes Homematic Gerät (idealer weise den HM-WDS100-C6-O-2 / OC3) mit meiner Homematic WDC7000 Wetterdisplay-Anzeige verbinden.

Dazu würde ich gerne:

  • homegear als Addon auf der CCU3 installieren
  • in homegear einen HM-WDS100-C6-O-2 einrichten.
  • den mit der WDC7000 direkt verknüpfen
  • idealerweise die Daten des HmIP-SWO-PR mit node-red (habe redmatic auch als AddOn auf der CCU3 laufen) an homegear übergeben, so dass dieser sie an das WDC7000 sendet

Das wäre aus meiner Sicht der Idealzustand. Was davon ist erreichbar? Was muss ich wie anders lösen (zum Beispiel Werteübergabe)?

Vielen Dank für Eure Hilfe! Es ist meine erste Berührung nach Jahren wieder mit Homegear und eine Websuche hat mich bisher nur teilweise voran gebracht.

Herzliche Grüße,
André

Hallo @anli,

das geht - auch die Übermittlung der Werte über Node-RED, ist aber mit etwas Aufwand verbunden. Es gibt zwei Hürden:

  1. Es müsste die HomeMatic-Wetterstation als virtuelles Gerät in das BidCoS-Modul einprogrammiert werden.
  2. Da es kein offizielles HomeMatic-BidCoS-Modul für die CCU3 gibt, müsste Homegear mit Hilfe der Toolchain manuell kompiliert werden.

Wir haben aktuell keine Kapazitäten, das virtuelle Gerät selbst zu implementieren, ich kann hier aber grob beschreiben, wie es funktioniert und leiste gerne Hilfestellung, falls jemand sich daran versuchen möchte:

Virtuelle Geräte sind ganz normale Homegear-Peers, mit zusätzlicher Logik. Das bedeutet, es kann tatsächlich ohne Weiteres eine virtuelle HM-WDS100-C6-O-2 angelegt werden. Als Vorlage kann der HM-CC-TC genutzt werden:


Das Senden von Paketen ist in der Klasse implementiert. Der Empfang von Paketen erfolgt durch Implementierung der Methode

void packetReceived(std::shared_ptr<BidCoSPacket> packet);

Den Rest übernimmt Homegear automagisch.

Viele Grüße

Sathya

2 Likes

Hallo @sathya,
vielen Dank für die Infos! Ich habe mir dazu noch weitere Gedanken gemacht:

  • Zur Vereinfachung kann homegear auch auf einem Raspi mit entsprechend angeschlossenem Funkmodul oder virtuellem Linux mit Funkmodul laufen
  • Werte werden vom HmIP-SWO-PR an CCU3 gesendet
  • von CCU3 kommen die Werte “irgendwie” nach Homegear
  • Homegear sendet die Werte über “virtuellen HM-WDS100-C6-O-2 / OC3” an das Display WDC7000 weiter

Folgende Fragen ergeben sich mir jetzt:

Damit die Werte über homegear an das Display gesendet werden können muss in Homegear der virtuelle HM-WDS100-C6-O-2 / OC3 angelegt werden. Dies kann wie Du oben beschrieben hast aus dem HmCcTc gehen. Ich habe mir das angesehen, jedoch noch nicht ganz durchblickt :-(. Erfolgt das senden der Werte über loadVariables?

Kann ich die notwendige Struktur für das virtuelle Gerät aus den DeviceFiles der CCU3 ableiten?

Ich glaube ich brauche hier noch ein paar Anschubser damit ich ans Laufen komme und bin Dir dankbar, wenn Du mir die gibst :slight_smile:

Viele Grüße,
André

Hallo @anli,

Nein, loadVariables lädt die Variablen aus der Datenbank. Das Senden erfolgt hier:

Viele Grüße

Sathya

Hallo @sathya,

super, vielen Dank! Das heißt in https://github.com/Homegear/Homegear-HomeMaticBidCoS/blob/ac580a30091f7834056f3f32785652c8431c84d3/src/VirtualPeers/HmCcTc.cpp#L435 ff. wird die Payload gebaut. Kann ich mir die vom Wettersensor aus dem Firmware-XML aus der CCU auslesen oder gibt es einen einfacheren Weg?

Vielen Dank für Deine Hilfe und viele Grüße!
André

Hallo @anli,

aus der XML ist der einfachste Weg. Alternativ (oder zusätzlich) kannst du das Paket aus dem Homegear-Log ablesen.

Viele Grüße

Sathya