Rolladensteuerung mit Shelly 2.5

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von DavGre »

Ist das deine vollständige Thing-Datei? Muss ich da ggf. etwas verändern?
Ich habe alles so kopiert. Auf Prozente fahren klappt tatsächlich damit.
Allerdings sind bei mir die Schalter (auf, ab) verdreht und die Funktion "Stop" funktioniert nicht.

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von StefanH. »

meine things Datei ist riesig. Aber so sollte es klappen:

Code: Alles auswählen

Bridge mqtt:broker:mosquitto "Mosquitto" [ host="localhost", port=1883, secure=false, username="openhabian", password="PASSWORD", clientID="openHAB" ]
{
 Thing topic Shelly25-01 "Rollladen_WZ_01" {
        Channels:
                Type string : online            "online"        [ stateTopic="shellies/shellyswitch25-5D98C1/online" ]
                Type rollershutter : control    "control"       [ stateTopic="shellies/shellyswitch25-5D98C1/roller/0/pos", commandTopic="shellies/shellyswitch25-5D98C1/roller/0/command/pos", transformationPattern="JS:InvertPercent.js", transformationPatternOut="JS:InvertPercent.js" ]
        }
}

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von DavGre »

Das Problem der umgekehrten Ansteuerung scheine ich gefunden zu haben.

Code: Alles auswählen

2019-08-13 16:05:45.341 [WARN ] [l.generic.ChannelStateTransformation] - Transformation service JS for pattern InvertPercent.js not found!
Wo liegt mein Fehler?
Die Datei "InvertPercent.js" habe ich im transform-Ordner angelegt. Der Inhalt ist identisch mit deiner Datei.

EDIT:
Lag wohl daran, dass ich die javascript transformation nicht installiert hatte. Das habe ich nun nachgeholt und die Fehlermeldung erscheint nicht mehr. Die Rollade verwechselt aber leider immer noch die Kommandos.

:?

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von StefanH. »

zum testen kannst du einfach mal diese Zeile ändern:

return percent_oh.toFixed(0);

in

return 20;

Dann sollte egal bei welchem Befehl immer auf 20% geöffnet werden. Funktioniert das? Falls nicht, stimmen die Berechtigungen auf die InvertPercent.js Datei? Liegt sie im transform Verzeichnis?

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von DavGre »

Hm also irgendwas stimmt da bei mir vorne und hinten nicht.
MIt der Änderung "return ;" fährt die Rollade immer noch falsch. Der Wert in der Sitemap wird dann aber durchgehend als "20" angezeigt.

Screenshot:
Bild

Zur Übersicht hier einfach mal meine ganzen relevanten Dateien.

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:brokerhome [ host="123.456.789.00", port=1111, secure=false, username="xxx", password="xxx" ]{ 
    Thing topic shelly {
    Channels:
        Type rollershutter : control    "control"       [ stateTopic="shellies/shellyswitch25-E66FB6/roller/0/pos", commandTopic="shellies/shellyswitch25-E66FB6/roller/0/command/pos", transformationPattern="JS:InvertPercent.js", transformationPatternOut="JS:InvertPercent.js" ]
    }
}
transform/InvertPercent.js

Code: Alles auswählen

(function(i) {
    // shelly 0 = Closed / 100 = open
    // oh2 UP cmnd = 0 / DOWN cmnd = 100

    //The following script converts [0% - 100%] to  [100% - 0%].
    var percent_shelly = parseInt(i, 10);

    var percent_oh = (100.0 - percent_shelly);

    //Return result with one decimal accuracy
    return 20;
})(input)
rollershutter.items

Code: Alles auswählen

Rollershutter   Rollade_Kueche      "Rollade Küche"                 (Rolladen)                                      { channel="mqtt:topic:brokerhome:shelly:control" }
Über einen Dummyswitch und entsprechender rule lässt sich die Rollade problemlos auf z. B. 30 % anfahren.
Über das "Rolltershutter-Item" ist aber alles verdreht.
  • auf stop fährt die Rollade herunter
  • und rauf bzw. runter sind vertauscht

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von StefanH. »

hmm, ja, der komisch. ich kann nur sagen, dass es bei mir so geht. vielleicht mal den openhab cache leeren? ich wuerde auch mal mit einem mqtt client lauschen, welcher wert denn an command/pos geschickt wird. da sollte der invertierte wert zu sehen sein.

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von DavGre »

Hm, das habe ich auch alles schon versucht.
Runterfahren = close und ganz zu ist dann 0. Das passt ja dann eigentlich zum Script der InvertPercent.js.
Was für mich halt auch unerklärlich ist, dass er auf "stop" nicht mit STOP reagiert. Stop wird bei mir ja anscheinend als "runter" bzw. "close" gewertet.

Steht total auf dem Schlauch :|

StefanH.
Beiträge: 162
Registriert: 28. Dez 2017 11:37

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von StefanH. »

aber es wird doch nur UP oder DOWN mit Zahlenwerten verwendet. kein close oder open

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von DavGre »

Close und open bekomme ich aber im mqtt. fx angezeigt. Darauf war das bezogen. Ich sehe da in keinem Topic was von UP oder DOWN. Bei mir tauchen nur die Prozentwerte und Close/Open/Stop auf.

bastier
Beiträge: 26
Registriert: 21. Dez 2018 22:55

Re: Rolladensteuerung mit Shelly 2.5

Beitrag von bastier »

ich nutze die shelly 2.5 positionsgesteuert auf oh 2.4

THING

Code: Alles auswählen

// Wohnzimmer-Essplatz
// IP 192.168.178.43
Thing mqtt:topic:shellyswitch25-733D91 "Rollo WZ Essplatz" (mqtt:broker:mosquitto) {
    Channels:
        Type rollershutter : shelly_d          "Rolladen Essen"            [ commandTopic="shellies/shellyswitch25-733D91/roller/0/command/pos", stateTopic="shellies/shellyswitch25-733D91/roller/0/pos"]
}
ITEM

Code: Alles auswählen

Rollershutter RS_WZ_Ess 	"Rollladen Essplatz"  	(gAllshutter, gEGshutter, gEGRS_WZ, gEGRS_WZKUE, gRSsued)                     [ "Lighting" ] {channel="mqtt:topic:shellyswitch25-733D91:shelly_d"}
SITEMAP

Code: Alles auswählen

Text label="Wohnen/Essen" icon="parents_1_1" {
                                Switch   item=gEGRS_WZ label="Alle Rolläden" icon="rollershutter" mappings=[100="OPEN", 70="3/4", 30="1/3", 0="CLOSE"]
                                Slider   item=RS_WZ_Ess label="Wohnen Essplatz [%d %%]" icon="rollershutter" 
                                Slider   item=RS_WZ_Sofa label="Wohnen Terasse [%d %%]" icon="rollershutter" 
                                Slider   item=RS_WZ_LB label="Wohnen Lichtband [%d %%]" icon="rollershutter" 
                            }
habe 16 Stück im Einsatz und die laufen ohne Probleme.
Die Steuerung über Slider funktioniert gut. 50% entsprechen allerdings nicht dem halben Fenster, da der Shelly über working time arbeitet. d.h. der Weg aus dem Rollokasten raus zählt auch mit, ebenso die Zeit bis alle Lamellen geschlossen sind, wenn er runter fährt

Antworten