technikkram.net
  • Home
  • smartkram
  • Themenfelder
    • Smart Home
      • Homematic & Homematic IP
      • Smart Home Zentrale
      • Home Assistant
      • MQTT & Messaging
      • Zigbee & Thread
      • Shelly Geräte
      • KNX Gebäudeautomation
      • Matter & Thread
      • Apple HomeKit
    • Server & DevOps
      • Docker & Container
      • Proxmox VE
      • Linux Administration
      • Monitoring & Observability
      • Kubernetes & K3s
      • Raspberry Pi
    • Netzwerk
      • UniFi Netzwerk
      • Netzwerk Grundlagen
      • WLAN Optimierung
      • VLAN Konfiguration
      • Firewall & Security
      • Managed Switches
    • Sicherheit
      • Überwachungskameras
      • IT-Security
      • Videoüberwachung
      • Alarmanlagen
      • Zutrittskontrolle
    • Energie & Solar
      • Energiemanagement
      • Solar & Photovoltaik
    • NAS & Storage
      • NAS Systeme
      • Backup & Recovery
      • Synology NAS
      • Storage Lösungen
  • Archiv
  • Kontakt
    • Datenschutz
    • Impressum
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Sebastian
Smart Home, Software & Co

Homematic: Systemvariablen erstellen und nutzen

Homematic: Systemvariablen erstellen und nutzen

Wir haben Euch schon sehr viel über die verschiedenen Sensoren und Aktoren für Homematic berichtet, heute haben wir ein Software-Thema. Vielleicht seid Ihr schon selbst über den Menüpunkt „Systemvariable“ gestolpert. Was diese sind und wofür man die Variablen gebrauchen kann, werde ich Euch in diesem Tutorial zeigen.

Homematic - Systemvaribalen

Systemvariablen dienen dazu, unterschiedliche Parameter, die Ihr global in Eurer Programmierung nutzen wollt, abzubilden. Das hört sich erstmal kompliziert an, ist es aber eigentlich nicht. An einem einfachen Beispiel wird dies schnell klar. Angenommen, wir wollen in unterschiedlichen Programmen überprüfen, ob alle Fenster geschlossen sind. Dann müssten wir normalerweise in jedem Programm jeden Fenstersensor separat auf dessen Zustand überprüfen. Das ist nicht nur sehr aufwändig, sonder verbracht auch viel Rechenleistung der CCU2. Außerdem ist es bei dieser Vorgehensweise sehr aufwändig, neue Fenstersensoren hinzuzufügen, da diese dann in jedem Programm hinzugefügt werden müssen.

Besser löst man dieses Problem mit einer Systemvariable. Wir bauen nur ein Programm, das den Zustand unserer Aufgabe in einer Systemvariable ablegt.

Sollte ein Fenster offen sein, wir die Variable auf „true“ gesetzt. Sollten alle Fenster geschlossen sein, wir die Variable vom Programm auf „false“ gesetzt. Die CCU2 bietet zudem die Möglichkeit „true“ und „false“ selbst zu benennen. Also verwenden wir an dieser Stelle „Fenster offen“ und „Fenster zu“.

Nun können wir in jedem Programm, indem wir den Status der Fenster abfragen wollen, auf diese Variable zurück greifen. Wir fragen also nur „wie ist der Status der Variable“.

So können wir auch komplexe Zusammenhänge sehr einfach abbilden. In diesem Tutorial zeige ich Euch, welche Möglichkeiten Ihr noch bei Systemvariablen habt.

Um Euch den Zusammenhang praktisch zu erklären, fangen wir mit einem kleinen Programm an, das bei mir Zuhause Anwendung findet. Mich interessiert der Zustand der Fenster im oberen und auch im unteren Geschoss, daher habe ich zwei Gruppen gebildet.

Anlegen einer Variablen:

Damit wir die Variablen später in einem Programm nutzen können, müssen wir diese zuerst anlegen. Dazu navigieren wir im Menü auf „Einstellungen“ –> „Systemvariable“.

Homematic - Systemvariable anlegen

Dort klicken wir auf die Schaltfläche „Neu“. Es öffnet sich ein neues Fenster. Hier kann der Name der Variable festgelegt werden. In unserem Beispiel benutze ich den Namen „Status Fenster oben“. Bei der Beschreibung könnt Ihr Euch Notizen machen, damit Ihr später noch nachvollziehen könnt, wofür die Variable angelegt worden ist. Bei Typ verwenden wir Logikwert.

Die anderen Datentypen benötigen wir aktuell noch nicht. Wir können nun noch die beiden Zustände benennen. Ich habe dafür „offen“ bei wahr und „geschlossen“ bei falsch eingetragen.

Homematic - Übersicht Variablen

In der Übersicht ist nun die neue Variable zu sehen. Diese kann ab jetzt in jedem Programm genutzt werden. Um die neue Variable mit leben zu füllen, wollen wir diese auch mit Werten beschreiben.

Dazu legen wir ein neues Programm an. Dazu navigieren wir zu „Programme und Verknüpfungen“ –> „Programme und Zentralenverknüpfung“. Über die Schaltfläche „Neu“ können wir ein neues Programm erzeugen.

Bei diesem Beispiel will ich alle Fenstersensoren, die sich in der oberen Etage befinden abfragen und den Status dann in die neue Variable schreiben.

Homematic - Programm Fenster offen

Ich habe 3 Fenstersensoren, die ich in der 1. Etage überprüfen will, da ich nur wissen will, ob einer dieser Sensoren offen ist, verknüpfe ich alle Abfragen mit einem „ODER“.

Der Aufbau des Programms sieht wie folgt aus:

Wenn…

Das Badezimmerfesnter offen ist

ODER

Das Schlafzimmerfenster rechts offen ist

ODER

Das Schlafzimmerfenster links offen ist

DANN setze die Systemvariable sofort auf offen.

Es können natürlich auch andere Sensoren abgefragt werden. Wichtig ist auch der Punkt „bei Änderung auslösen“. Die CCU2 benötigt immer einen „Trigger“ also einen Auslöser um ein Programm zu starten. Daher ist es wichtig an dieser Stelle mit dem Parameter „bei Änderung auslösen“ zu arbeiten.

Wir benötigen nun ein weiteres Programm um die Variable wieder auf den Zustand „geschlossen“ zu setzen. Dieses vorgehen ist leider etwas komplizierter. Wir müssen zusätzlich abfangen, dass ja mehrere Fenster gleichzeitig geöffnet sind. Würden wir das gleiche Programm wie für den Zustand „offen“ verwenden, würde die Variabel beim Schließen eines Fenster direkt auf „geschlossen“ gesetzt werden, obwohl noch ein weiteres Fenster offen ist.

Homematic - Fenster geschlossen Programm

Aber auch das ist recht einfach zu erledigen. Wir überprüfen wieder wie oben jedes Fenster einzeln, zusätzlich wird aber auch noch überprüft, ob die anderen Fenster geschlossen sind. Das sehr Ihr im oberen Bild. Hier haben wir jeweils einen Trigger, dieser überprüft dann den Status der anderen Fenster.

Ein Beispiel: Wir das Badezimmerfenster geschlossen, muss natürlich noch überprüft werden, ob auch beide Schlafzimmerfenster geschlossen sind (nur prüfen). Sollte dies der Fall sein, wird die Variable auf „geschlossen“ gesetzt.

Schlägt die Überprüfung fehl, weil noch ein weiteres Fenster offen ist, bleibt die Variable auf dem Status „offen“ stehen. Diesen Trigger und die gleichzeitige Überprüfung der anderen Fenster habe ich für jeden Fall erstellt.

So könnt Ihr sicher sein, dass die Variabel nicht auf geschlossen gesetzt wird, wenn noch ein Fenster offen ist.

Falls Ihr eine elegantere Idee für diesen Fall habt, könnt Ihr mir diese sehr gerne mitteilen ;-)

Das könnte dich auch interessieren

  • Fenster-Heizungs-Automation: Heizung bei offenem Fenster abschalten – Fenster-Heizungs-Automation mit Fenstersensor und smartem Heizkörperthermostat in modernem Wohnraum
    Fenster-Heizungs-Automation: Heizung bei offenem…
    20. April 2026 Moderne Fenster-Heizungs-Automation mit ZigBee-Sensoren und smarten Thermostaten für optimale Energieeffizienz Dies ist der Übersichtsartikel. Vertiefe dein Wissen mit unseren Detailartikeln:
  • Systemarchitektur-Diagramm der Fenster-Heizungs-Automation mit ZigBee-Sensoren und Home Assistant
    Fenster-Heizungs-Automation: Heizung bei offenem…
    5. April 2026 Moderne Fenster-Heizungs-Automation mit ZigBee-Sensoren und smarten Thermostaten für optimale Energieeffizienz 🎓 Grundlagen-Serie: Heizung bei offenem Fenster automatisch abschalten Dies ist…
  • Homematic Thermostat Temperaturwerte werden nicht an Home Assistant übertragen – Homematic Thermostat zeigt 21°C während Home Assistant Dashboard veraltete 18°C Temperatur anzeigt
    Homematic Thermostat Temperaturwerte werden nicht an…
    3. April 2026 Das kennst du bestimmt auch: Das Thermostat zeigt 21°C, aber Home Assistant hängt bei 18°C fest Du kennst das Problem…
  • KNX-Integration in Home Assistant über ETS-Projekt einrichten – Docker Exit Code 125 Fehler - Container startet nicht wegen Konfigurationsproblem
    Docker Command Container startet nicht - Exit Code…
    4. April 2026 Docker Exit Code 125 Fehler – Container startet nicht wegen Konfigurationsproblem Exit Code 125 bedeutet: Docker kann den Container gar…
  • KNX Dimmer verursacht LED-Flackern: Kompatibilität prüfen und beheben – KNX Dimmer mit flackernder LED-Lampe und Oszilloskop zur Diagnose von Kompatibilitätsproblemen
    KNX Dimmer verursacht LED-Flackern: Kompatibilität…
    6. April 2026 KNX Dimmer-Kompatibilitätsprobleme mit LED-Leuchtmitteln erfordern systematische Diagnose mittels Oszilloskop und gezielter Parameteranpassung LED-Flackern bei KNX-Dimmern ist ein klassisches Kompatibilitätsproblem, das…
  • Fenster und Türen Alarm einrichten - Einfach per App überwachen – Aqara Fenster-Türsensor am weißen Fensterrahmen mit Smartphone Push-Benachrichtigung Alarm
    Fenster und Türen Alarm einrichten: So überwachst du…
    6. April 2026 Moderner Fenster-Türsensor mit sofortiger Smartphone-Benachrichtigung bei unbefugtem Zutritt Fenster und Türen Alarm einrichten kostet dich ab 89 Euro für eine…
12. Juli 2016/21 Kommentare/von Sebastian
Schlagworte: CCU2, Fensterkontakte, Homematic, Programmierung, Systemvariable, Türkontakt
Eintrag teilen
  • Teilen auf Facebook
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf Pinterest
  • Teilen auf LinkedIn
  • Per E-Mail teilen
https://technikkram.net/wp-content/uploads/2016/07/Homematic-Systemvaribalen.jpg 615 1400 Sebastian https://technikkram.net/wp-content/uploads/2019/05/technikkram_transparent.png Sebastian2016-07-12 21:16:102016-07-31 09:33:37Homematic: Systemvariablen erstellen und nutzen
21 Kommentare
  1. Thorsten Rothe
    Thorsten Rothe sagte:
    14. August 2023 um 16:25

    Moin Sebastian,
    das hat sehr gut funktioniert.
    ich habe aber 2 Variablen, in die die gleichen Fenster geschlossen und offen schreiben soll, in der zweiten variable soll jedoch die Meldung offen um 3 Minuten verzögert kommen, da ich mit der Variable die Klimaanlage ausschalten will wenn jemand vergessen hat das Fenster zu schließen.
    Leider bleibt in der einen Variable der Zustand immer aus offen?
    Wo liegt da das Problem?

    Beste Grüße
    Thorsten

    Antworten
  2. Bernhard
    Bernhard sagte:
    26. Dezember 2020 um 17:47

    Hi,
    jetzt habe ich doch noch eine Frage:
    Ich würde gerne (in der WebUI programmiert) eine Systemvariable nutzen, um den Öffnungsgrad eines Rolladenaktor zu setzen. Die Öffnung ist in Prozent angegeben, die Zahl-Variable kann aber nur 0-100. Wahrscheinlich brauche ich aber 0.0-1.0, um die Prozente abzubilden.
    Gibt es da einen Trick, wie ich das umrechnen kann.

    Antworten
    • Bernhard
      Bernhard sagte:
      27. Dezember 2020 um 18:57

      Hi,
      konnte das Problemchen lösen.
      Nachdem ich das mit Hilfe Deiner Schnipsel in Scriptprogrammierung versucht habe und mir die Werte für :1.LEVEL ausgegeben liess, habe ich gesehen, dass ich da eine Zeichenketten-Variable verwenden muss.
      Die kann 0.00 bis 1.00 annehmen und dann fährt der Aktor an die richtige Stelle.

      Antworten
  3. Bernhard
    Bernhard sagte:
    26. Dezember 2020 um 17:36

    Hi Sebastian,
    ganz anderer Ansatz, wenn es nur darum geht, ob irgendein Fenster noch offen ist:
    Beim Öffnen eines Fenster eine Zahl-Variable um +1 erhöhen, beim Schliessen 1 abziehen.
    Wenn die Variable wieder den Ausgangszustand 0 hat, sind alle Fenster zu.

    Antworten
  4. Björn
    Björn sagte:
    4. Juni 2020 um 23:03

    Hallo Sebastian,
    vielen Dank für den Artikel, sehr interessant. Irgendwie stehe ich aber gerade auf dem Schlauch bei dem zweiten Programm. Könnte es nicht auf drei Bedingungen reduziert werden? Also:

    WENN
    Fenster oben GESCHLOSSEN bei Änderung
    UND
    Fenster links GESCHLOSSEN bei Änderung
    UND
    Fenster rechts GESCHLOSSEN bei Änderung
    DANN
    …

    Nach meinem Verständnis braucht es ja nur genau einen Trigger, um das ganze Programm von oben nach unten zu durchlaufen. Damit würde EINER der drei Sensoren das Programm triggern, aber trotzdem ALLE Bedingungen geprüft und nur wenn ALLE Fenster zu sind wird der dann-Teil ausgeführt. Ist meine Sichtweise da falsch? Und wo ist mein Fehler?

    Liebe Grüße
    Björn

    Antworten
  5. Dominik
    Dominik sagte:
    4. Februar 2018 um 17:41

    Hallo

    das geht auch direkt im gleichen Programm. Einfach Sonst wenn, alle Sensoren geschlossen mit oder verknüpft und schon geht die Variable auf geschlossen.

    Antworten
  6. Mathias
    Mathias sagte:
    28. Juli 2017 um 1:24

    gähn……. Nun muß mich mein Handy rausholen, um zu sehen, dass ein Fenster offen ist. Welches, bleibt ein Geheimnis.
    dann bleibe ich doch lieber bei meinem IObroker und der Visualisierung auf meinem Wandtablet. Ein Blick reich aus, und ich sehe sogar, welches Fenster offen ist, die Temperaturen in allen Zimmern, welches Licht an ist, ob der interne Alarmkreis scharf ist usw, usw…………
    ach ja, ohne Werbung betreiben zu wollen, ich kann meinen Staubsauger-Roboter, meinen Wasser- und Stromverbrauch und Sprachsteuerung mit Alexa einbinden.

    Antworten
    • Sebastian
      Sebastian sagte:
      28. Juli 2017 um 8:21

      Hey Mathias, hört sich alles klasse an. Bedenke aber bitte auch, dass nicht jeder so tief in das Thema einsteigen will/kann. Daher sind solche einfachen Lösungen für viele ausreichend.

      Antworten
      • Mathias
        Mathias sagte:
        28. Juli 2017 um 13:25

        Hi Sebastian,
        da hast Du schon recht, aber wenn ich meinen selbstgebastelten „Einbruchmelder“ scharf schalten will, muß ich schon wissen, welches Fenster als offen angezeigt wird.
        Sonst schaltet die Anlage eben nicht scharf. Das heißt, ich muß jedes Fenster oder Türe öffnen und wieder schließen, weil das Fenster in Wahrheit zu, jedoch als offen angezeigt wird.
        Gruß,
        Mathias

        Antworten
      • Dennis
        Dennis sagte:
        30. August 2017 um 8:44

        Sehe ich auch so.
        Ich teste gerade ob ich das Programm nutzen kann um den Rolldane bei offenen Fenster zu sperren

        Antworten
  7. Bartlos
    Bartlos sagte:
    5. April 2017 um 10:00

    Ist ja alles toll, ich bin ein totaler Neuling! Wozu braucht man das? Was macht diese Systemvariable eigentlich, bzw. wo wird die angezeigt?

    Antworten
  8. Ben
    Ben sagte:
    8. März 2017 um 17:34

    Hi Sebastian,

    danke für die Anleitung! Ich habe diese Anweisungen auch so umgesetzt aber dabei folgendes Problem: Obwohl der Türsensor von geschlossen auf offen and ei CCU signalisiert (Status in der Geräteliste wird auch als „offen“ von vorher „geschlossen“ angezeigt“) wird die Systemvariable nicht auf „offen“ gesetzt sondern bleibt unverändert bei „geschlossen“.
    Hast du eine Idee, was der Fehler sein könnte?

    Antworten
    • Ben
      Ben sagte:
      8. März 2017 um 17:52

      uhoh, nevermind…restarts bewirken Wunder :P

      Antworten
      • Sebastian
        Sebastian sagte:
        8. März 2017 um 17:55

        …top ;-) das wäre auch mein 1. Tipp gewesen!

        Antworten
  9. Heiko Bernhörster
    Heiko Bernhörster sagte:
    23. Februar 2017 um 21:59

    Meine Lösung ist bis her sehr ähnlich, da ich habe ein Fenster und eine Tür abfrage, bin ich auf der Suche nach einer Verzögerung. D.h. nur wenn die Tür mind. 5 Minuten offen ist, soll diese als geöffnet gelten. Ich steuere darüber einen Heizungsthermostat und er soll ja nicht bei jedem Betreten des Raums (Badezimmer) kurz zufahren und sofort wieder aufgehen…

    Gibt es dafür auch eine Lösung?

    Heiko

    Antworten
  10. Thorsten
    Thorsten sagte:
    9. November 2016 um 23:42

    Hallo Sebastian,

    kleiner Tipp, um die Anzahl Deiner Programme gering zu halten.
    Erweitere einfach das erste Programm um folgendes:

    sonst – Systemzustand – Fenster oben geschlossen.

    Sollte also keine der von Dir abgefragten Bedingungen zutreffen, wird damit die Variable automatisch auf „Fenster oben geschlossen“ gesetzt.

    Du ersparst Dir damit das zweite Programm.

    Außerdem könntest Du das Programm zusätzlich erweitern und als nächstes „sonst wenn“ auswählen und darunter Deine Fenster unten abfragen, die entsprechende Variable setzen und dann auch mit „sonst“ wieder auf geschlossen setzen, wenn alle Fenster geschlossen sind.

    Du hättest nur mehr 1, anstelle von 4 Programmen.

    Ich arbeite mit all meinem Variablen so, dass ich nur bestimmte Zustände überprüfe, um eine Variable auf einen Wert zu setzen. Sobald keine der geforderten Bedingungen zutrifft, werden sie automatisch wieder auf den anderen Wert gesetzt.

    Somit hab ich anstelle von rund 120 Programmen nur mehr etwa 35 und das erleichtert mir nicht nur das Management, sondern schont auch die Ressourcen meiner CCU.

    Liebe Grüße,
    Thorsten

    Antworten
    • Sebastian
      Sebastian sagte:
      10. November 2016 um 13:48

      Hall Thorsten, vielen Dank für den konstruktiven Hinweis! Ich werde das mal bei mir im Programm ändern. Danke!

      Antworten
      • Tobias
        Tobias sagte:
        5. Januar 2017 um 11:38

        Hallo Sebastian, wenn der Hinweis von Thorsten von dir geprüft und bei dir geändert wurde, wäre es schön, wenn du diesen Hinweis auch in den Artikel übernehmen bzw. einarbeiten würdest ;-)
        Danke :)

        Grüße

        Antworten
        • Patrick
          Patrick sagte:
          24. Januar 2021 um 10:46

          Kannst du das bitte noch auf deiner Webseite aktualisieren?
          Vielleicht ist es dann für mich verständlicher

          Antworten
  11. Ronny Pöthe
    Ronny Pöthe sagte:
    22. August 2016 um 11:34

    Sie schreiben Diesen Trigger und die gleichzeitige Überprüfung der anderen Fenster habe ich für jeden Fall erstellt. Was genau ist damit gemeint? Für jedes Fenster oder für jedes Programm? Für ihre Antwort danke ich im Voraus.

    Antworten
    • Sebastian
      Sebastian sagte:
      22. August 2016 um 19:06

      Hallo,

      ich trigger in jedem Programm, wo ich den Status benötige auf eine Änderung. Wird nun ein Fenster geöffnet, überprüft das Programm, das auf den Status zugreifen will, welchen Wert die Systemvariable gerade hat.

      Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  •  
Smartkram Shop

Kategorien

Allgemein Apple Apps CCU2 CCU3 Charly debmatic EQ-3 Firmware Foto und Video Gadgets Gaming Geschenke Hardware Hausinstallation Haussicherheit HB-RF-USB Homematic Homematic IP Homematic IP Access Point Homematic IP wired iOS KNX Media Center Mediola Mobile Multimedia Netzwerk Neuigkeiten Nützliches Online Services piVCCU piVCCU3 Provider Rabatte & Co Raspberrymatic Security smarte Beleuchtung Smart Home Software & Co Testberichte Tipps & Tricks Wearables Windows Zubehör
© Copyright - technikkram.net -
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Nach oben scrollen Nach oben scrollen Nach oben scrollen