Schaltkontakt per Funk "verkabeln"?

Von der openWB aus Schalten, hier geht es um Shelly und co.
ChristophR
Beiträge: 1073
Registriert: So Okt 30, 2022 8:07 am
Has thanked: 39 times
Been thanked: 76 times

Schaltkontakt per Funk "verkabeln"?

Beitrag von ChristophR »

Das betrifft zwar nicht direkt die openWB, aber hier lesen bestimmt einige mit, die wissen, wie man das realisieren könnte.
Meine neue Wärmepumpe hat nun auch eine passive Kühlfunktion.
Ich habe zwar noch keine Ahnung, wie effektiv das ist (bin eher skeptisch), war aber quasi "dabei".
Nun müssen die Raumthermostate beim Kühlen ja genau invertiert arbeiten, damit die "Heizkreise" offen bleiben.
Dafür gibt es einen Schaltkontakt an der Wärmepumpe, wenn sich diese im Kühlmodus befindet.
Da ich aber keine Verkabelung zu den Heizkreisverteilern habe, muss ich nun überlegen, wie ich diese Schaltung dort hinbekomme.

Hat dazu einer eine tolle Idee oder Lösung parat?
openWB Series 2 Standard+, SW-Version 2
SolarEdge SE10K-RWS, BYD LVS 8, 16,8 kWp.
CUPRA Born
Benutzeravatar
humschti
Beiträge: 698
Registriert: Mo Nov 25, 2019 8:25 am
Wohnort: Nürensdorf (Schweiz)
Has thanked: 12 times
Been thanked: 6 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von humschti »

Shelly via WLAN?
openWB Series 2 Duo mit EVU, 1/3 Umschaltung und abgesetztem Display, 16 kWp mit Solaredge, Ansteuerung Haushaltsgeräte mit Shelly
Tesla Model S und Cupra Born (SoC via EVCC)
LutzB
Beiträge: 4014
Registriert: Di Feb 25, 2020 9:23 am
Has thanked: 10 times
Been thanked: 86 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von LutzB »

Oder ein Eingang am Dimm-Kit.
ChristophR
Beiträge: 1073
Registriert: So Okt 30, 2022 8:07 am
Has thanked: 39 times
Been thanked: 76 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von ChristophR »

Vermutlich beides, Danke für die Ideen. ;-)
Bis zum Dimmkit habe ich sowieso Kabel zu liegen und wenn später ein Shelly über den Eingang geschaltet werden kann, ist das die einfachste Lösung.
Mir hatte nur der "Sender" gefehlt.
openWB Series 2 Standard+, SW-Version 2
SolarEdge SE10K-RWS, BYD LVS 8, 16,8 kWp.
CUPRA Born
ChristophR
Beiträge: 1073
Registriert: So Okt 30, 2022 8:07 am
Has thanked: 39 times
Been thanked: 76 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von ChristophR »

So, ich habe das Eingangssignal der WP an DI8 des D&C Kit angeschlossen.
Die Heizungsverteiler sind getauscht, mit einem Eingang, der die Kühlung aktiviert.
Ein Shelly ist jeweils eingerichtet, (1Plus) der den Eingang schaltet.

Da die Shellies ja Scripte unterstützen, müssten die doch wahrscheinlich den Status des DI8 der OpenWB per MQTT abfragen und damit schalten können?

Gibt es hier jemand, der weiß, wie so ein Script aussieht?
openWB Series 2 Standard+, SW-Version 2
SolarEdge SE10K-RWS, BYD LVS 8, 16,8 kWp.
CUPRA Born
Gero
Beiträge: 3982
Registriert: Sa Feb 20, 2021 9:55 am
Has thanked: 21 times
Been thanked: 143 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von Gero »

Das sieht mir ziemlich nach Javascript aus:

https://www.shelly.com/de/blogs/scripts-library

Der reinen Logik nach, musst du, um an die MQTT-Topics ranzukommen, einen MQTT-client auf dem Shelly haben, der das entsprechende openWB-Topic abonniert. Ob da schon einer drauf ist? Ich weiss es nicht. Du kannst aber such die http-API der openWB nehmen und den DI8 jedes Mal per http abfragen (und dann dementsprechend die Ausgänge invertieren, da möchtest du doch hin, oder?)
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
ChristophR
Beiträge: 1073
Registriert: So Okt 30, 2022 8:07 am
Has thanked: 39 times
Been thanked: 76 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von ChristophR »

Gero hat geschrieben: Di Jun 03, 2025 5:35 am Das sieht mir ziemlich nach Javascript aus:

https://www.shelly.com/de/blogs/scripts-library

Der reinen Logik nach, musst du, um an die MQTT-Topics ranzukommen, einen MQTT-client auf dem Shelly haben, der das entsprechende openWB-Topic abonniert. Ob da schon einer drauf ist? Ich weiss es nicht. Du kannst aber such die http-API der openWB nehmen und den DI8 jedes Mal per http abfragen (und dann dementsprechend die Ausgänge invertieren, da möchtest du doch hin, oder?)
Wenn DI8 auf true geht, soll der Shelly schalten.
Wenn er auf false ist, soll der Shelly ausschalten.
Ich denke der Shelly hat MQTT im Bauch?
openWB Series 2 Standard+, SW-Version 2
SolarEdge SE10K-RWS, BYD LVS 8, 16,8 kWp.
CUPRA Born
Gero
Beiträge: 3982
Registriert: Sa Feb 20, 2021 9:55 am
Has thanked: 21 times
Been thanked: 143 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von Gero »

Einfach einen neuen Wert in den Broker zu schreiben ist etwas anderes als dem Broker zu sagen, dass man gerne Updates erhalten will und auf etwaige Änderungen auch wartet. Im letzten Fall muss man noch etwas implementieren, was die ganze Zeit für den Broker empfangsbereit ist. Aber letzten Endes weiß ich nicht, ob ein Shelly schon einen MQTT-client mitbringt hat oder nicht. Werte publishen können alle.

Mit meiner invertierung des Schaltsignals vermutete ich, dass du den Shelly im Heizkreisverteiler einbauen willst um damit statt „auf“ des Stellers bei Heizen ein „zu“ des Stellers bei Kühlen zu machen. Das wäre vom Event her einfacher, denn das script hängt man dann einfach auf „am Schalteingang tut aich was“ - das gibt‘s bestimmt.

DI8 abonnieren und bei Änderung einen Shelly schalten ist in nodeRed in ein paar Sekunden zusammengeklickt…

Edit: ich habe ja nur miniEMs als Gen2-Shellies, keine Schalter. Aber gefunden habe ich das hier https://shelly-api-docs.shelly.cloud/ge ... tsubscribe - ein client ist also da
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
Gero
Beiträge: 3982
Registriert: Sa Feb 20, 2021 9:55 am
Has thanked: 21 times
Been thanked: 143 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von Gero »

Es geht! Und war auch eine schöne Forschungsaufgabe!

Zuerst einmal machen wir ein Script, welches ein topic auf true published, das ist ja die Vorgabe:
true.jpg
true.jpg (74.13 KiB) 72 mal betrachtet
In den Shellies ist ein komplettes MQTT-Objekt implementiert mit publish, subscribe etc. Der Broker ist der in der Konfiguration eingetragene - ich habe den der openWB genommen. Wenn man dieses Script laufen lässt, erscheint auch prompt das neue topic "di8" im MQTT-Explorer.
Nun müssen wir das subscriben, dabei müssen wir eine Funktion mitgeben, die bei einer Änderung des Topics aufgerufen wird. Weil wir publishen ja schon können, lassen wir unsere Funktion das so machen:
sub.jpg
sub.jpg (80.48 KiB) 72 mal betrachtet
Damit wir ein bisschen hin- und herklicken können, machen wir noch ein publish auf false und haben dann drei Scripts:
subs.jpg
subs.jpg (104.26 KiB) 72 mal betrachtet
Nun können wir mit den beiden publishern den Wert unseres neuen Topics "di8" verändern und sehen im neuen Topic "di8-out" den Wert, der in dem di8-Topic gepublished ist. Das funktioniert auch, wenn man den Wert von "di8" z.B. im MQTT-Explorer verändert.
Bei dem Schalter "Run on startup" würde ich vermuten, dass wenn der Shelly bootet, dieses Script gestartet wird. Deswegen ist der Schalter beim "subscriber" eingeschaltet.

Und damit man nicht alles abtippen muss (das mit dem Editieren der Scripts im Shelly ist ein bisschen nervig) hier nochmal als code-Block

Code: Alles auswählen

MQTT.publish("others/di8", JSON.stringify(true), 0, false);

MQTT.subscribe("others/di8", function(topic, message) {
  MQTT.publish("others/di8-out", message, 0, false);
});

MQTT.publish("others/di8", JSON.stringify(false), 0, false);
Nun muss nur noch herausgefunden werden, wie man statt des publishen den Shelly schaltet. Kann ich nicht probieren, weil meinem Shelly das Relay fehlt. Und alle meine schaltenden Shellies Gen 1 sind.

Apropos Gen1. Da ist als Prefix für's Topic leider "shellies" fest vorgegeben, weshalb man mit denen nicht in den von der openWB freigegebenen "others"-Zweig reinkommt. Es wäre schön, wenn man in der openWB neben den "others" auch noch "shellies" mit freigeben würde. Vielleicht kopiert ja einer mal die entsprechende Zeile in der mosquitto.conf und stellt einen PR.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
ChristophR
Beiträge: 1073
Registriert: So Okt 30, 2022 8:07 am
Has thanked: 39 times
Been thanked: 76 times

Re: Schaltkontakt per Funk "verkabeln"?

Beitrag von ChristophR »

Supercool, Danke für die Hilfe, es funktioniert.

Code: Alles auswählen

MQTT.subscribe("openWB/io/states/0/get/digital_input", function(topic, message) {

    try {
        let payload = JSON.parse(message);
        let DI8 = payload["DI8"];

        if (DI8 === true) {
            Shelly.call("Switch.set", { id:0, on:true });
        } else if (DI8 === false) {
            Shelly.call("Switch.set", { id:0, on:false });
        }
    } catch (error) {
        print("Fehler beim Parsen der Nachricht: " + error);
    }
});
Die Werte im Broker muss ich nicht schreiben, nur lesen.
Die WP hat ein Relaisausgang, der bei Kühlmodus geschlossen wird.
Das ist per echtem Kabel an das openWB D&C Kit am Eingang DI8 angeschlossen.

Das Topic lautet in meinem Fall:
openWB/io/states/0/get/digital_input

Die Werte sehen so aus:

Code: Alles auswählen

{"DI1": true, "DI2": false, "DI3": false, "DI4": false, "DI5": false, "DI6": false, "DI7": false, "DI8": true}
P.S: Zum Invertieren der Heizungsregler:
Ich habe mir neue Heizverteiler geholt, weder meine Regler noch die Verteiler sind Smart.
Der Verteiler kann aber auch mit Heizungsreglern betrieben werden, die gar keinen Kühlmodus unterstützen, das invertiert das Gerät automatisch.
Außerdem hat es noch einen automatischen hydraulischen Abgleich:
https://homeperfect.de/Moehlenhoff-Ansc ... V-8-Zonen/
Das war preiswerter, als alle Regler zu tauschen, einen (einfacheren) Verteiler, der Kühlmodus schalten kann, hätte ich sowieso gebraucht.
openWB Series 2 Standard+, SW-Version 2
SolarEdge SE10K-RWS, BYD LVS 8, 16,8 kWp.
CUPRA Born
Antworten