Seite 4 von 6
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 12. Aug 2020 21:13
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

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 12. Aug 2020 23:21
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 13. Aug 2020 18:27
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

Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 13. Aug 2020 19:30
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 20. Apr 2021 18:44
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
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 20. Apr 2021 19:28
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
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 20. Apr 2021 20:22
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 21. Apr 2021 00:49
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 21. Apr 2021 09:01
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?
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.
Re: Items und Things für Openhab 2.4 mit Shelly 2.5 via Mqtt
Verfasst: 21. Apr 2021 18:17
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.