Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Geflasht oder ungeflasht ...

Moderator: seppy

AndRe5575
Beiträge: 37
Registriert: 8. Jun 2020 20:16

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von AndRe5575 »

aber was ist dadurch gewonnen?
Ja ich weiß man kann die natürlich auch schnell nacheinander antippen. Ist eher um zu sehen was so machbar ist. Ich würde das ganze dann eher für meine HUE Lampen einsetzen. Mal eben einige im Wohnzimmer angewählt und eine gemeinsame Farbe gewählt und eingeschaltet. Da ich hier wirklich meist würfel, welche ich zusammen einschalte, wäre das ein nice to have.

Muss nun schauen ob ich als nächstes Thema mal die RULES angehe oder eher das binding meines Marantz Receivers. Plan ist es irgendwann einen Button am Handy zu drücken und OpenHab schaltet über einen Shelly meine Steckdosenleiste vom TV ein. Rollo fährt zu 70 % runter. Verstärker schaltet auf einen gezielten Kanal um, welcher automatisch über das HDMI Signal eingeschaltet wird. Als letztes werden dann noch ein paar Lampen auf die richtige Farbe und Helligkeit eingestellt :-)

Benutzeravatar
udo1toni
Beiträge: 6951
Registriert: 11. Apr 2018 18:05
Answers: 78
Wohnort: Darmstadt

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von udo1toni »

Ja, bei Beleuchtung bin ich schon eher bei Dir, gerade bei Lampen mit Farbtemperatur oder gar RGB geht es ja um mehr als einen Status.
Also grundsätzlich brauchst Du pro zu steuerndem Item ein weiteres Item vom Typ Switch. Über den Switch wird das Item in der Gruppe aktiv/inaktiv geschaltet.
Damit es eine eindeutige Zuordnung der Items zueinander gibt, sollte ein Teil des Itemnamens identisch sein, z.B.

Code: Alles auswählen

Group gLichter
Group gGroupLicht
Color Lichter
Switch GroupLicht_01 "Group Licht 1" (gGroupLicht)
Color Licht_01 "Licht 1" (gLichter)
Switch GroupLicht_02  "Group Licht 2" (gGroupLicht)
ColorLicht_02 "Licht 2" (gLichter)
Nun packst Du die Switche, die Einzelleuchten und das Steueritem in eine Sitemap.

Code: Alles auswählen

Color item=Lichter
Switch item=GroupLicht_01
Switch item=GroupLicht_02
Color item=Licht_01
Color item=Licht_02
Nun noch eine Rule, die die Verbindung zwischen dem ungebundenen Item Lichter und den Items, die in der Gruppe sind, aber unter Berücksichtigung der Schalterstellungen:

Code: Alles auswählen

rule "dynamische Gruppe"
when
    Item Lichter received command
then
    gGroupLicht.members.filter[i|i.state == ON].forEach[j|
        val myLight = gLichter.members.filter[k|k.name.split("_").get(1)==j.name.split("_").get(1)].head
        if(myLight.state != receivedCommand)
            myLight.sendCommand(receivedCommand)
    ]
end
Du kannst die Lichter einzeln steuern (ganz normal über die Items) und über die Schalter die Items in der Gruppe aktivieren oder deaktivieren.
Die aktivierten Lichter lassen sich über die Gruppe steuern. Dabei wird zunächst die Gruppe der Schalter nach den Elementen gefiltert, bei denen der Status ON ist. Anschließend wird für jedes der Items das passende Item herausgesucht (identischer Namensteil) und geprüft, ob sich der Status vom empfangenen Befehl unterscheidet. Ist das der Fall, wird der Befehl an das Item geschickt.
Es können beliebig viele Lichter so zusammengefasst und dynamisch der Gruppe zugeordnet werden. Die identischen Namensteile müssen eindeutig sein, sind aber nicht auf Zahlen beschränkt, man könnte also auch ein MyLicht_blabliblub und ein Schalter_blabliblub Item anlegen und den beiden Gruppen zuordnen.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

AndRe5575
Beiträge: 37
Registriert: 8. Jun 2020 20:16

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von AndRe5575 »

Wow nochmals vielen Dank.

Ich werde mich am Wochenende direkt dran begeben. Deinen Receiver hast nicht rein zufällig auch schon an OpenHab laufen oder :-)

Benutzeravatar
udo1toni
Beiträge: 6951
Registriert: 11. Apr 2018 18:05
Answers: 78
Wohnort: Darmstadt

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von udo1toni »

Ich habe einen Yamaha Receiver und das Fernsehen läuft über yavdr, das läuft über das vdr-Binding (leider ist kein v2-Binding in Sicht), also ja, meine Receiver sind mit openHAB verbunden.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

UnterStrom
Beiträge: 28
Registriert: 28. Mär 2021 10:02

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von UnterStrom »

Hallo zusammen,

ich bin zwar auf OH 3, aber hoffe doch, dass mein Post hier passend ist ;-)

Ich verzweifle ein wenig an der "kWh" Anzeige Thematik.

Der Shelly relevante Auszug aus meiner Things Datei sieht wie folgt aus:

Code: Alles auswählen

Shelly 2.5 Straße //
    Thing topic Rollo_Strasse "Rollo Straße" @ "LivingRoom" { 
		Channels: 
			Type rollershutter : roller  "Rollo Straße"               [ stateTopic="shellies/shellyswitch25-xx/roller/0/pos", commandTopic="shellies/shellyswitch25-xx/roller/0/command/pos" ]
            Type number : power "Wirkleistung"                        [ stateTopic="shellies/shellyswitch25-xx/roller/0/power" ]      
            Type number	: energy_kWh "Gesamtverbrauch [%.2f kWh]"     [ stateTopic="shellies/shellyswitch25-xx/roller/0/energy", transformationPattern="JS:shelly_convertkwh.js" ]
            Type number : temp "Temperatur [%.2f °C]"                 [ stateTopic="shellies/shellyswitch25-xx/temperature" ]
            Type string : temp_status "Temperatur Status"             [ stateTopic="shellies/shellyswitch25-xx/temperature_status" ]
            Type string : pos_status "Aktuelle Position"              [ stateTopic="shellies/shellyswitch25-xx/roller/0" ]     
    }
ITEMS:

Code: Alles auswählen

// Shelly 2.5 Rollade Straße
Rollershutter    roller         "Rollo Straße"                  {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:roller"}
Number           energy_kWh     "Gesamtverbrauch [%.2f kWh]"    {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:energy_kWh"}
Number           power          "Wirkleistung [%.0f W]"         {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:power"}
Number           temp           "Temperatur [%.2f °C]"          {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:temp"}
String           temp_status    "Temperatur Status"             {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:temp_status"}
String           pos_status     "Aktuelle Position"             {channel="mqtt:topic:MosquittoMQTT:Rollo_Strasse:pos_status"}
Um jetzt von Watt/minute auf kWh zu kommen, habe ich verschiedene "Transformationsformeln" gefunden, wie bspw.

Code: Alles auswählen

(function(value) {
    return value / 60000.0; // Divide by minutes per hour and divide by 1000 to get kilos
})(input);
oder

Code: Alles auswählen

(function(i) {
    return i/60000;
})(input)
oder

Code: Alles auswählen

(function(value) {
    return Math.round(1000 * value / 60.0) / 1000;
})(input);
Aber egal, welche Formel ich in die "shelly_convertkwh.js" Datei auch packe, der Wert vor dem kWh ist nach wie vor der W/m-Wert.
kWh Wert.jpg
Hat hier jemand einen Tipp?

Btw. ..ich kämpfe auch mit dem Thema, dass "Close" ja eigentlich "Open" sein muss ;-)

Danke im Voraus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
PeterA
Beiträge: 809
Registriert: 8. Feb 2019 12:12
Answers: 12

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von PeterA »

Hier hab ich das mit einer kleinen Rule und einem Item gelöst:

Code: Alles auswählen

rule "Shelly25_04 kWh"
 
when
Item Shellyswitch25_740A26_energy received update 
then
Shellyswitch25_740A26_kWh.postUpdate(Shellyswitch25_740A26_energy.state as DecimalType / 60000)
end
Gruß Peter
- OpenHab 2.4
#PWRUP

UnterStrom
Beiträge: 28
Registriert: 28. Mär 2021 10:02

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von UnterStrom »

Hi Peter,

irgendwas passt noch nicht bei mir.
Wenn ich die rules Datei anlege, bekomme ich einen Outputfehler in VCS angezeigt:
2021-04-20 20_00_11-Window.png
Allerdings wird in der Basic UI nun der richtige kWh Wert angezeigt (bin mir nicht sicher, ob das auch damit zusammen hängt, dass ich den transformationPattern="JS:shelly_convertkwh.js Term aus der Things Datei rausgenommen hatte?!?!?).
2021-04-20 20_20_57-Wohnzimmer.png
Aber ja.. erstmal ok, dass der Wert jetzt korrekt angezeigt wird.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 6951
Registriert: 11. Apr 2018 18:05
Answers: 78
Wohnort: Darmstadt

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von udo1toni »

Da fehlen Klammern... as DecimalType wird wie eine Rechenvorschrift betrachtet, also wie plus, minus oder geteilt. Es muss also

Code: Alles auswählen

energy_kWh.postUpdate((energy.state as DecimalType) / 60000)
heißen. Eventuell könnte man statt DecimalType auch Number schreiben.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

UnterStrom
Beiträge: 28
Registriert: 28. Mär 2021 10:02

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von UnterStrom »

Danke für dein Feedback udo1toni!!

Wollte gerade deinen Hinweis in der rules Datei umsetzen und sehe nun, dass die von mir erwähnte Fehlermeldung nicht mehr auftritt?!?!
Habe jetzt dennoch die 2 weiteren Klammern gesetzt.

Die nächste Baustelle - die "richtige" Up/Down Anzeige - will ich auch nicht richtig meistern ;-)

Ich hatte diesbzgl. ein "wenig" recherchiert und bin auf diesen Vorschlag für eine "Rule" gestoßen:

Code: Alles auswählen

rule "rollershutter"
when
    Item Proxy changed 
then
    if(rollershutter.state as Number == 0){
        rollershutter.sendCommand(100)
    }
    else if(rollershutter.state as Number == 100){
        rollershutter.sendCommand(0)
    }
end
Wenn ich das richtig verstehe, müsste ich in meiner Items Datei einen entsprechenden "Proxy" item (ohne channel binding) anlegen. Würde das reichen?

Code: Alles auswählen

Rollershutter   roller_proxy   "Rollade Straße" <blinds>
Muss dieser Proxy auch in der things Datei erwähnt werden?

In der rule würde ich "Proxy" durch "roller_proxy" ersetzt müssen. Aber ich bin mir noch nicht ganz sicher bzgl. des rollershutter.state.
Muss ich anstatt "rollershutter" mein "roller" item nehmen oder bleibt es so wie es ist (weil es sich auf den channel mit dem type rollershutter in der things Datei bezieht?

Code: Alles auswählen

Type rollershutter : roller  "Rollo Straße"               [ stateTopic="shellies/shellyswitch25-xx/roller/0/pos", commandTopic="shellies/shellyswitch25-xx/roller/0/command/pos" ]
Besten Dank im Voraus.

Benutzeravatar
udo1toni
Beiträge: 6951
Registriert: 11. Apr 2018 18:05
Answers: 78
Wohnort: Darmstadt

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt

Beitrag von udo1toni »

Nein, die Rule ist großer Quatsch.

Um zu erklären warum: sendCommand() sendet ein Kommando (geht ja irgendwie aus dem Namen der Funktion hervor...). Kommandos werden automatisch an angebundene Channel weitergeleitet, das heißt, die Rule sendet einen Positionierungsbefehl an den angeschlossenen Rollershutter. Da es heißt "wenn 0 dann 100" und "wenn 100 dann 0" wird der Laden immer wieder hoch und runter gefahren, endlos.

Die Frage ist, um was für Rollläden genau es geht (bzw. natürlich, um welche Aktoren genau). Ich z.B. nutze Sonoff Touch 2 Channel, die ich mit Tasmota geflasht habe. Tasmota bringt seit V7 Rollershutter Unterstützung mit, in der aktuellen Version 9.3.1 (aber auch schon in 8.4...) ist die Unterstützung vollständig (und vollständig kompatibel zu openHAB, wenn man das haben will). Das bedeutet, es reicht ein stateTopic, über welches das Device die Position meldet, und zwar 0 für oben und 100 für unten, und ein commandTopic, welches auf die Kommandos UP/DOWN/STOP und 0-100 reagiert. Man muss es nur korrekt konfigurieren (default liefert Tasmota 100 für oben und 0 für unten).

Es wäre also die beste Variante, die Aktoren korrekt zu konfigurieren.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

Antworten