Einrichten Siemens Logo <--> openHab2

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von udo1toni »

Der von mir gepostete Code ist normaler Rules DSL Code. Das hat nichts mit Java Script zu tun.

Mit dem Code hast Du zwei Möglichkeiten. Entweder legst Du eine *.rules Datei an und kopierst den Code dort hinein (manchmal ist das auch die einzige Möglichkeit, nämlich wenn eine Rule globale Variablen nutzt), oder Du legst die Rule über die Main UI an, dazu trennst Du den Trigger-Teil der Rule ab (der when-Teil), trägst die Trigger entsprechend im when-Block der Rule ein, der then-Teil der Rule landet dann als DSL-Rule Code im then-Block der Rule. Der but-not-Block wird dann gewöhnlich nicht gebraucht.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Galadriel13
Beiträge: 216
Registriert: 30. Dez 2019 20:29

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von Galadriel13 »

Hallo Udo,

vielen Dank, das war es. ;)
Nun funktioniert das super.

Geht es eigentlich auch, dass ich eine dritte Rule für "Mittelpos" anspreche?
Ich habe im Logo-Programm eine Option "Z-Pos", die über eine definierte Zeit die Mitelposition anfährt.

Könnte man dann eben die drei Items anlegen und in der Rule das so aufbauen, dass mit dem Drücken des mittleren Buttons (eigentlich STOP) die Mittelposition angefahren wird?

Wie gesagt, kann ich jederzeit durch nochmaliges Drücken von Auf/Ab den Vorgang anhalten.

Ich freue mich, dass ich nun auch die Rollos überhaupt schon mal schalten kann, das ist ideal, wenn man mal nicht zu Hause ist, oder zum Beschatten.
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.0.4 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

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

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von udo1toni »

Ja, das hatte ich ja schon in einem meiner vorigen Items angedeutet. Niemand hindert Dich daran, im Zweig, der die Stop-Taste auswertet stattdessen den Befehl zum Anfahren der Mittelposition auszulösen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Galadriel13
Beiträge: 216
Registriert: 30. Dez 2019 20:29

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von Galadriel13 »

Vielen Dank für deine Unterstützung.

Ich habe das heute getestet.
Sofern ich in der Rule bei case MITTELPOS das Item, dass den Eingang Mittelpos der Logo anspricht (hier Logo83RolloWCMittelpos_VB1001) eintrage, funktioniert die Mittelpos. nicht.
Ich glaube, ich habe dann nicht verstanden, wie du das gemeint hast.

Code: Alles auswählen

// Triggers:
// - When RollerShutter1 received a command

// context: Rollo_WC-1
switch(receivedCommand) {
    case UP  : {
        Logo83RolloWCAUF_VB1000.sendCommand(ON) 
        shutter_WC_Dir.postUpdate(-1) 
    }
    case DOWN: { 
        Logo83RolloWCAB_VB1002.sendCommand(ON) 
        shutter_WC_Dir.postUpdate(1) 
    }
    case MITTELPOS: { 
        if(shutter_WC_Dir.state == -1) 
            Logo83RolloWCMittelpos_VB1001.sendCommand(ON) 
        else if(shutter_WC_Dir.state == 1) 
            Logo83RolloWCMittelpos_VB1001.sendCommand(ON) 
        else
            return;
        shutter_WC_Dir.postUpdate(0)
    }
    default  : { 
        ShutterPosition.sendCommand(receivedCommand)
    }
}
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.0.4 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

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

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von udo1toni »

Nein, ein Command MITTELPOS gibt es auch nicht. Du musst da schon das Command STOP stehen lassen, denn das sendet die mittlere Taste des Rollershutter Items.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Galadriel13
Beiträge: 216
Registriert: 30. Dez 2019 20:29

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von Galadriel13 »

Ok, danke, das war der Fehler.
Die Schaltfunktionen lassen sich jetzt für jeden Rollo ausführen. ;)

Was aber nicht geht, ist die Icon-Anzeige für Mittelposition.
Sofern diese angefahren wurde, bleibt der Rollo, oder besser gesagt das Icon auf geschlossen/AB.

Folgende Rule habe ich verwendet:

Code: Alles auswählen

rule "control Shutter"
when
    Item RollerShutter2 received command
then
    switch(receivedCommand) {
        case UP  : {
            Logo83RolloHARAUF_VB1003.sendCommand(ON) 
            shutter_HAR_Dir.postUpdate(-1) 
        }
        case DOWN: { 
            Logo83RolloHARAB_VB1005.sendCommand(ON) 
            shutter_HAR_Dir.postUpdate(1) 
        }
        case STOP : { 
            Logo83RolloHARMittelpos_VB1004.sendCommand(ON)
            shutter_HAR_Dir.postUpdate(0)
        }
        default  : { 
            ShutterPosition.sendCommand(receivedCommand)
        }
    }
end
Es wäe super, wenn das auch noch passen würde.

Vielen Dank im Voraus.

VG.
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.0.4 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

dreamar
Beiträge: 74
Registriert: 22. Dez 2017 08:41

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von dreamar »

Bei mir läuft das über eine extra Rule.

Code: Alles auswählen

rule "Rollade Kueche Status"
when
    Item IT_EG_Rollo_Kueche_Status changed
then
    if (IT_EG_Rollo_Kueche_Status.state == 0) {
        EG_Kueche_Rollade.postUpdate(100)
    }
        if (IT_EG_Rollo_Kueche_Status.state == 1) {
        EG_Kueche_Rollade.postUpdate(50)
    }
        if (IT_EG_Rollo_Kueche_Status.state == 2) {
        EG_Kueche_Rollade.postUpdate(0)
    }
end
Openhab 2.5.10 mit deconz und Homematic

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

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von udo1toni »

Du musst halt ein postUpdate 0, 50 oder 100 an das Rollerhutter Item schicken, damit der Status auf 0 (offen), 50 (mitte) oder 100 (geschlossen) wechselt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Galadriel13
Beiträge: 216
Registriert: 30. Dez 2019 20:29

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von Galadriel13 »

Danke udo1toni und dreamar für die Unterstützung.

Es klingt vielleicht banal, aber ich bin scheinbar doch zu doof dafür.

Ich muss zwangsläufig mit sendCommand(ON) arbeiten, sonst wird die Schaltfunktion gar nicht erst ausgelöst.

Wenn ich das so, wie du dreamar mache, passiert ebenso gar nichts (natürlich habe ich entspr. die Item-Bezeichungen geändert).
Das heisst, ich müsste meinem Verständnis nach bei meinem Beispiel bleiben, was ja auch funktioniert, nur die Anzeige für die Mittelposition funktioniert nicht:

Ursprungszustand AUF --> Mittelpos --> Icon zeigt AUF (Rollo fährt in Mittelpos.)
Ursprungszustand AB --> Mittelpos --> Icon zeigt AB (Rollo fährt in Mittelpos.)


Ich habe noch analog udo1toni`s Hinweis entspr. 0, 50, 100 angepasst:

Code: Alles auswählen

rule "control Shutter"
when
    Item RollerShutter3 received command
then
    switch(receivedCommand) {
        case UP  : {
            Logo83RolloSpeisAUF_VB1006.sendCommand(ON) 
            shutter_Speis_Dir.postUpdate(100) 
        }
        case DOWN: { 
            Logo83RolloSpeisAB_VB1010.sendCommand(ON) 
            shutter_Speis_Dir.postUpdate(0) 
        }
        case STOP : { 
            Logo83RolloSpeisMittelpos_VB1007.sendCommand(ON) 
            shutter_Speis_Dir.postUpdate(50)
        }
        default  : { 
            ShutterPosition.sendCommand(receivedCommand)
        }
    }
end
Gleiches Bild.


@ Dreamar: Mit meinen beiden 7er Logos waren keine Schaltfunktionen hinzubekommen-warum weiss ich nicht.
Die 7er habe ich gegen die 8er Baureihe getauscht-es funktionierte auf Anhieb.
Ich wollte schon alles beerdigen...
Hausautomation zu 95% mit Siemens Logo! (5x 0BA8).
Gartenbewässerung, Rollosteuerung, Lichtsteuerung, etc.
Abfrage von Temperaturen, Helligkeit, Füllstand Zisterne Leistung Photovoltaik.

openHAB 4.0.4 mit folgenden Bindings:

- Bosch Indego Binding
- Tankerkönig Binding
- iCalendar Binding
- iCloud Binding
- Anwesenheit via iCloud
- ComfoAir Binding (Zehnder AirComfort A350)
- SolarEdge Binding (PV)
- OpenWeatherMap Binding
- DWD Pollenflug Binding
- DWD Unwetter Binding
- FritzBox TR064 Binding
- PLCLogo Binding
- WIFI LED Binding
- Luxtronikheatpump (Novelan-WP)
- BEOK Raumthermostate
- myenergi

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

Re: Einrichten Siemens Logo <--> openHab2

Beitrag von udo1toni »

Oh, bitte nicht die Funktionen der Items durcheinander würfeln!

Du hast ein Item, welches in der Sitemap dargestellt wird. Das ist z.B. Das Item RollerShutter3.
Du hast drei Items, welche das Rollo auf die drei definierten Positionen fahren lassen, in diesem Fall dann Logo83RolloSpeisAUF_VB1006, Logo83RolloSpeisAB_VB1010 und Logo83RolloSpeisMittelpos_VB1007.
Du hast ein weiteres Item, welches wir eingeführt haben, damit die Stoptaste als Stoptaste funktioniert, das ist das Item shutter_Speis_Dir.
Dieses Item brauchst Du aber gar nicht, wenn Du die Stoptaste nicht als Stoptaste verwendest.
weiterhin untertützt Deine Steuerung offensichtlich kein direktes Positionieren, weshalb das Item ShutterPosition gar nicht gebraucht wird. Ich hatte das nur ursprünglich integriert, weil man das "halt so macht" ;) wenn der Rollladen direktes Positionieren unterstützt.
Deine Rule sollte also so aussehen:

Code: Alles auswählen

rule "control Shutter3"
when
    Item RollerShutter3 received command
then
    switch(receivedCommand) {
        case UP  : {
            Logo83RolloSpeisAUF_VB1006.sendCommand(ON) 
            RollerShutter3.postUpdate(0) 
        }
        case DOWN: { 
            Logo83RolloSpeisAB_VB1010.sendCommand(ON) 
            RollerShutter3.postUpdate(100) 
        }
        case STOP : { 
            Logo83RolloSpeisMittelpos_VB1007.sendCommand(ON) 
            RollerShutter3.postUpdate(50)
        }
    }
end
Ich habe von der Logo! keine Ahnung, könnte mir aber vorstellen, dass Du von vornherein hier ein anderes Programm implementieren könntest, welches dann direktes Positionieren erlaubt.

Abschließend noch der Hinweis: Da Du offensichtlich mehrere Rollläden in dieser Art ansteuerst, bietet es sich an, die Rule zu generalisieren. Das funktioniert aber nur gut, wenn Du die Itemnamen sinnvoll gestaltest.
Faustregel für Itemnamen: Gleichartige Items sollten gleichartige Namen haben. Die Itemnamen sollten nichts mit der Hardware zu tun haben, denn Items haben nichts mit der Hardware zu tun.
Hardware wird über die Bindings angebunden, in openHAB3 ausschließlich über Things und Channel, bei openHAB1 ausschließlich über die Konfiguration der Items (also das angegebene Binding), in openHAB2 abhängig vom Binding entweder mit der einen oder der anderen Methode.

Um die Rule generalisieren zu können, musst Du die Itemnamen voneinander ableiten können, z.B. so:
Shutter1 (für die Sitemap), Shutter1_UP (Steueritem hoch), Shutter1_DOWN (Steueritem runter) und Shutter1_MID (Steueritem Mittelposition), die Du alle in eine gemeinsame Gruppe schmeist, z.B. gShutters (NICHT typisiert, keine Funktion).
Dann kann die Rule so aussehen:

Code: Alles auswählen

rule "control Shutter"
when
    Member of gShutters received command
then
    gItems = gShutters.members.filter[i|i.name.contains(triggeringItem.name)]
    switch(receivedCommand) {
        case UP  : {
            gItems.filter[i|i.name.contains("UP")].head.sendCommand(ON) 
            triggeringItem.postUpdate(0) 
        }
        case DOWN: { 
            gItems.filter[i|i.name.contains("DOWN")].head.sendCommand(ON) 
            triggeringItem.postUpdate(100) 
        }
        case STOP : { 
            gItems.filter[i|i.name.contains("MID")].head.sendCommand(ON) 
            triggeringItem.postUpdate(50)
        }
    }
end
Diese Rule brauchst Du exakt einmal, egal, wieviele Rollläden Du verwendest. Es müssen nur alle Items in der Gruppe gShutters zusammengefasst sein und der Namenskonvention entsprechen, das heißt, das Item in der Sitemap hat einen Namen, die drei Steueritems haben den selben Namen, nur jeweils mit angehängtem _UP, _DOWN, bzw. _MID.
Man könnte auch die Steueritems in einer eigenen Gruppe zusammenfassen, um die Rule nicht zusätzlich triggern zu lassen (jedes sendCommand auf eines der Items in der Gruppe löst ja die Rule aus), die Rule läuft aber auch so fehlerfrei, denn die Steueritems erhalten ja nur den Befehl ON.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten