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

Geflasht oder ungeflasht ...

Moderator: seppy

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 »

Ich habe einen Shelly 2.5, nicht Tasmota geflasht, aber ihn via der Shelly GUI "MQTT" enabled.

Edit: Als Schalter dient ein normaler "2 Tasten Schalter", den ich über die Settings in der Shelly GUI auch entsprechend konfiguriert habe.
Mir geht´s ja jetzt um die Anzeige in der OH UI: da wird mir die Rollade als "close" angezeigt, obwohl sie ja im Status "open" sein müsste.

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

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

Beitrag von PeterA »

Den Shelly ausbauen und umklemmen. So ists mir mit meinem ersten Shelly auch ergangen.
Dann wird er zwar in der Shelly APP umgekehrt angezeigt aber ich möchte es ja in OpenHab richtig haben.
- 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 »

Habe deinen Vorschlag, PeterA, mal versucht über die Settings in der Shelly UI umzusetzen (und dort unter "Reverse Directions" die Aktivierung entfernt). Dadurch wurde in der Shelly UI die Position der Rollade "verkehrt" und in OH "richtig" angezeigt.

Eigentlich sollte es das ja dann gewesen sein, aber da ich in den Shelly Settings unter "Weekly schedule" ein paar Routinen vorhanden habe (bspw. das die Rollade 30min nach Sonnenuntergang runtergeht), funktionierten die nicht mehr. ;-)

OK.. "Regeln in der Shelly UI entfernen und neue in OH erstellen"... (für mich - derzeit - leichter gesagt, als getan).

Astro Binding ist bereits installiert und eine erste Regel hatte ich auch schon über die OH UI erstellt (schaltet eine Hue Go Lampe bei Sonnenuntergang ein...jedoch bin ich noch nicht dahinter gekommen, wie ich eine gewünschte Farbe/Helligkeit in der Regel "unterbringe").

Bei den Regeln für die Rollladen (wochentags rauf um xUhr, am Wochenende y Uhr, bei Sonnenuntergang +30m runter & und Lampe X an), die ich gerne alle in VSC anlegen würde, komme ich nicht zurecht.

Wenn du/jemand hier einen Tipp hast/habt, wie das umgesetzt werden kann, wäre das Klasse.

@ udo1toni: Zu deiner Bemerkung hier:
udo1toni hat geschrieben: 21. Apr 2021 18:17 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.
Den Shelly mit Tasmota zu flashen, kam mir auch schon mal in den Sinn. Das scheint ja bei dem auch via OTA zu funktionieren (link).

Mit meinen Gosund Steckdosen hatte das prima geklappt. Jedoch bin ich mir bei dem Shelly unsicher, ob ich damit die "Positionsproblematik" beseitigt bekomme, da der Tasmota default status ja auch 100= oben und 0=unten hat.

Wie müssten denn die entsprechende(n) Zeile(n) in der things Datei lauten?
Bisher habe ich den folgenden "Channel":

Code: Alles auswählen

 Type rollershutter : roller  "Rollade Straße"                [ stateTopic="shellies/shellyswitch25-blabbla/roller/0/pos", commandTopic="shellies/shellyswitch25-blabla/roller/0/command/pos" ]
Wenn ich dich richtig verstanden habe, müsste die command Zeile muss noch "mit etwas" ergänzt werden. Aber mit was?

Danke im Voraus.

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

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

Beitrag von udo1toni »

Die Shelly Topics sind halt leicht anders, aber ähnlich. Die Frage ist, ob Dir ein Topic reicht, um sowohl mit UP/DOWN/STOP als auch mit 0 - 100 zu steuern. Die Rückmeldung kommt ja eh als Wert 0 - 100.

In Tasmota gibt es eine Option, um die Meldung für offen/geschlossen umzukehren. Gewöhnlich ist es in Tasmota falsch (also 100 = offen und 0 = geschlossen), aber mit ShutterInvert 1 liefert Tasmota korrekt 0 = offen und 100 = geschlossen. Das gilt dann natürlich auch für die absolute Positionierung.

Steuerung per Astro Binding:
Wenn Du das Astro Binding einfach einrichtest, gibt es anschließend in der Inbox ein Thing für sun und eines für moon, welche sich ihre Werte (Positionsdaten) aus den System Settings auslesen. Die heißen dann astro:sun:local und astro:moon:local.

In einer Rule für den Sonnenaufgang triggerst Du dann einfach auf 'astro:sun:local:civilDawn#event' triggered START:

Code: Alles auswählen

rule "bei Sonnenaufgang"
when
    Channel 'astro:sun:local:civilDawn#event' triggered START
then
    // Rollläden hoch
end

rule "bei Sonnenuntergang"
when
    Channel 'astro:sun:local:civilDusk#event' triggered START
then
    // Rollläden runter
end
civilDawn und civilDusk triggern bei einer Elevation von -6°, da beginnt die Morgendämmerung bzw. endet die Abenddämmerung. Diese beiden Zeitpunkte sind erfahrungsgemäß sehr gut geeignet für das Öffnen und Schließen der Läden.
Du kannst selbstverständlich die Zeitpunkte noch relativ verschieben, indem Du einen Offset von +/- x Minuten setzt und genauso kannst Du auch ein Zeitfenster einstellen (mittels earliest und latest). Es läuft dann so, dass der Laden frühestens bei earliest gefahren wird, sollte der eigentliche Trigger (unter Berücksichtigung des Offset) später stattfinden, fährt der Laden später, spätestens aber zum Zeitpunkt latest.
Innerhalb der Rule musst Du nur dort, wo ich den Kommentar eingefügt habe, die Anweisung(en) zum Verfahren der Läden angeben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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 »

Merci Udo!!
Ich überlege mir das mit dem Flashen nochmal. Bin mir noch nicht ganz sicher, ob es einen "Mehrwert" zu der bereits aktivierten MQTT Option in der Shelly UI.

Bzgl. der Rules...habe auch noch ein wenig "recherchiert" und eben folgende Regel für die Rollade erstellt:

Code: Alles auswählen

rule "Rollo Straße sunset +30"
when
    Channel "astro:sun:home_offset:set#event" triggered START
then
    logInfo("Astro", "Sunset with offset is trigged")
    roller.sendCommand(0); // Rollade Straße geht 30min nach sunset runter 
end
Das entsprechende Thing lautet:

Code: Alles auswählen

Thing astro:sun:home_offset [ geolocation="x,y", interval=300 ] {
    Channels:
        Type rangeevent : set#event [
            offset=30
        ]
}
Mal gucken, ob das nachher so funktioniert ;-)

Bin jetzt noch dabei 2 Regeln zu erstellen, bei denen das Rollo "wochentags um 6:45" und am "Wochenende um 7:30" hochgeht. ;-)
Müsste dafür das NTP Bindung "herhalten"?
Zuletzt geändert von UnterStrom am 26. Apr 2021 08:38, insgesamt 1-mal geändert.

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

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

Beitrag von udo1toni »

Dafür brauchst Du kein NTP Binding. Time cron (das ist der entsprechende Trigger) nutzt die Systemzeit.

Das NTP Binding ist tatsächlich nur dazu da, die Zeit (und das Datum) für andere Geräte bereitzustellen. Beispielsweise ist es in knx üblich, dass Raumtemperaturregler eine Wochenschaltuhr implementiert haben. Wäre jetzt doof, wenn man die von Hand stellen müsste. Nun kann man für (sehr viel) Geld einen DCF-Empfänger mit knx Ausgang einbauen (knx Wetterstationen haben das auch meist an Bord), oder man speist eben die Datentelegramme aus openHAB ein (für 0 EUR Zusatzkosten)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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 »

OK...ich guck mal, wie das mit dem Time Cron funktioniert.
Hatte eben mal versucht, die Regel über die OH UI zu erstellen, aber wenn ich die Tage Mo-FR auswähle, kann ich irgendwie noch nicht die Zeit auf 6:45 festlegen...

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

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

Beitrag von PeterA »

- 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 »

Danke Peter!

Wenn ich das dann richtig verstehe, wäre der entsprechende "Cron" => 0 45 6 ? * MON,TUE,WED,THU,FRI *
Oder?
2021-04-24 18_10_15-CronMaker.png


EDIT:
Tipp..topp..funktioniert :-)

Code: Alles auswählen

rule "Rollo Straße Wochenende"
when 
    Time cron "0 30 7 ? * SAT,SUN *"
then
    logInfo("Time cron", "Rollo Str morgens Wochenende")
    roller.sendCommand(100); // Rollade Str geht am WE um 7:30 hoch
end
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von UnterStrom am 26. Apr 2021 08:31, insgesamt 2-mal geändert.

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 »

UnterStrom hat geschrieben: 24. Apr 2021 17:35 Merci Udo!!
Ich überlege mir das mit dem Flashen nochmal. Bin mir noch nicht ganz sicher, ob es einen "Mehrwert" zu der bereits aktivierten MQTT Option in der Shelly UI.

Bzgl. der Rules...habe auch noch ein wenig "recherchiert" und eben folgende Regel für die Rollade erstellt:

Code: Alles auswählen

rule "Rollo Straße sunset +30"
when
    Channel "astro:sun:home_offset:set#event" triggered START
then
    logInfo("Astro", "Sunset with offset is trigged")
    roller.sendCommand(0); // Rollade Straße geht 30min nach sunset runter 
end
Das entsprechende Thing lautet:

Code: Alles auswählen

Thing astro:sun:home_offset [ geolocation="x,y", interval=300 ] {
    Channels:
        Type rangeevent : set#event [
            offset=30
        ]
}
Mal gucken, ob das nachher so funktioniert ;-)

Bin jetzt noch dabei 2 Regeln zu erstellen, bei denen das Rollo "wochentags um 6:45" und am "Wochenende um 7:30" hochgeht. ;-)
Müsste dafür das NTP Bindung "herhalten"?

Hmm...Teilerfolg....Rollade ging zwar runter, aber genau zur "sunset" Zeit (und nicht 30min später).

Hatte dann gedacht, es läge an dem falsch geschriebenen rangeevent (und änderte es in rangeEvent, aber die Rollade blieb oben (hatte sie - nachdem sie zur sunset Time runterging - wieder hochgefahren und erwartet, dass die Offset time von 30min nach wie vor "greift").

Hmm..woran kann es liegen? Muss ich evtl. im Channel anstelle des

Code: Alles auswählen

Type rangeEvent
vielleicht

Code: Alles auswählen

Type start
schreiben?

Edit:
Ich vermute es lag an meiner Channel Definiton in der Rule, da ich "astro:sun...." anstelle von 'astro:sun....' geschrieben hatte.

Ich versuche es jetzt mal hiermit:

Code: Alles auswählen

rule "Rollo Straße Civil dusk +25"
when
    Channel 'astro:sun:home:civilDusk#event' triggered START
then
    logInfo("Astro", "Civil Dusk with offset is trigged")
    roller.sendCommand(0); // Rollade Straße geht 25min nach Beginn der Abenddämmerung runter 
end
Things:

Code: Alles auswählen

Thing astro:sun:home [ geolocation="x,y", interval=60 ] {
    Channels:
        Type rangeEvent : civilDusk#event [
            offset=25
        ]   
}
Zuletzt geändert von UnterStrom am 26. Apr 2021 08:41, insgesamt 2-mal geändert.

Antworten