Ankündigung

Einklappen
Keine Ankündigung bisher.

openHAB Befehle

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Codebeispiel] openHAB Befehle

    Hallo noch einmal,

    scheinbar bin ich blind oder suche nicht richtig oder es ist einfach zu spät

    Ich versuche meine KI.pl in Rules für openHAB zu übersetzen und finde einige Befehle nicht.

    state_now $Schlafen_Decke
    get_set_by $Schlafen_Decke eq '0.0.9' <= Adresse des Schalters

    Gibt es evtl eine Übersicht der möglichen Befehle?


    Viele Grüße

    Joerg

    #2
    Hallo JoergA,

    kannst du bitte dein Problem genauer spezifizieren, dann kann ich dir ggf. weiterhelfen.

    Die Wiki der openHab Homepage hilft zu beginn etwas weiter, zudem empfehle ich dir den Designer zu verwenden da dieser beim finden von Befehlen behilflich sein kann (drücken von Strg + Space).

    Gruß
    mepi0011

    Kommentar


      #3
      Hallo Mepi0011,

      ich habe mir in Misterhouse eine Logik geschrieben, die feststellt ob zwischen 21 und 4 Uhr von einem Schalter am Bett das letzte Licht im Schlafzimmer ausgeschaltet wurde; dann ist die Wahrscheinlichkeit hoch, dass die Eltern auch mal ins Bett gehen.

      Meine Frau und ich haben je einen Schalter, mit dem die 3 Lichtquellen geschaltet werden können (Decke und jeweils am Nachttisch).

      Der gesamte Code lautet
      PHP-Code:
      if (time_between '9 pm''4 am'){
       if ((((
      state_now $Eltern_Decke eq OFF && get_set_by $Eltern_Decke eq '0.0.9') ||
            (
      state_now $Eltern_Decke eq OFF && get_set_by $Eltern_Decke eq '0.0.10')) &&
            
      state $Eltern_Bett_links eq OFF && state $Eltern_Bett_rechts eq OFF)
       ||
          (((
      state_now $Eltern_Bett_links eq OFF && get_set_by $Eltern_Bett_links eq '0.0.9') ||
            (
      state_now $Eltern_Bett_links eq OFF && get_set_by $Eltern_Bett_links eq '0.0.10')) &&
          
      state $Eltern_Decke eq OFF && state $Eltern_Bett_rechts eq OFF)
       ||
          (((
      state_now $Eltern_Bett_rechts eq OFF && get_set_by $Eltern_Bett_rechts eq '0.0.9')  ||
            (
      state_now $Eltern_Bett_rechts eq OFF && get_set_by $Eltern_Bett_rechts eq '0.0.10')) &&
          
      state $Eltern_Decke eq OFF && state $Eltern_Bett_links eq OFF)){
       
        
      set $Schlafen_Eltern ON;
       }

      Nun habe ich das Problem => Wie frage ich mit openHAB ab, welcher Schalter eine Funktion ausführt und wie der Status der restlichen Lampen ist.

      Ich hoffe ich konnte dies verständlich erklären?? Parallel lese ich natürlich im Wiki und Danke für den Tip mit dem Designer und dem Shortcut; werde ich auch mal testen.

      Sicherlich bin ich über weitere Hilfe dankbar

      Viele Grüße
      Joerg

      Kommentar


        #4
        Hallo JoergA,

        leider kenne Misterhouse und dessen Logig nicht. Daher gehe ich davon aus, das du zwei GA hast die du schalten möchtest.

        1.) Licht Schlafzimmer Decke 1 mit der GA 0/0/9
        und
        2.) Licht Schlafzimmer Decke 2 mit der GA 0/0/10

        Beide Lampen deklarieren wir als Switch im Item-File (*.item). Das sieht dann z.B. wie folgt aus:

        Code:
        Switch Licht_Eltern_Decke1    "Licht Schlafzimmer Decke 1"    (Schlafzimmer)        {knx="0/0/9"}
        Switch Licht_Eltern_Decke2    "Licht Schlafzimmer Decke 2"    (Schlafzimmer)        {knx="0/0/10"}
        Nun kannst du eine Regel (in der Datei *.rule) erstellen um die Zustandsänderungen zu überwachen und darauf zu reagieren.

        z.B:

        Code:
        rule Eltern_Schlafen
        when
                Item Licht_Eltern_Decke1 changed or
                Item Licht_Eltern_Decke2 changed
        then
                if (now.getHourOfDay >= 22 || now.getHourOfDay <= 6) {
                   <<deine logik>>
                   // Den Status eines Item kannst du wie folgt abfragen z.B. if Licht_Eltern_Decke.state == ON {dann mach etwas...}
                }
        Ich hoffe ich konnte dir etwas weiterhelfen.
        Im Forum findest du einige Beispiel-Regeln aus denen du einiges lernen kannst. z.B. hier:

        http:/knx-user-forum.de/openhab/2419...erzimmer.htmla

        https://knx-user-forum.de/openhab/24...schreiben.html

        Gruß
        mepi0011

        PS: das openHab Demo ist auch sehr hilfreich!

        Kommentar


          #5
          Hallo zusammen,

          habe heute noch einmal diverse Minuten (oder waren es Stunden) damit verbracht hier im Forum die Code-Snips zu lesen (versuchen zu verstehen) und natürlich auch weiter in der openHAB Demo Datei.

          Das Ergebnis meiner Übersetzung der Logik:
          Code:
          [SIZE=2][COLOR=#7f0055]
          
          [B][SIZE=2][COLOR=#7f0055]rule
          [/COLOR][/SIZE][/B][/COLOR][/SIZE][LEFT][SIZE=2][COLOR=#000000]GoSleep[/COLOR][/SIZE]
          [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]when[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055]
          [/COLOR][/SIZE][SIZE=2][U]([/U][/SIZE][/LEFT][SIZE=2]
          [/SIZE][/LEFT][SIZE=2]
          [/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Item[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] C_Garage_Oben [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]changed[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]or[/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Item[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] C_Garage_Unten [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]changed[/COLOR][/SIZE][/COLOR][/SIZE][/B][U][SIZE=2])[/SIZE][/U][SIZE=2] && (now.getHourOfDay >= [/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]21[/COLOR][/SIZE][/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]or[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] now.getHourOfDay <= [/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]4[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
          [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]then[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055]
          [/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (Lampe_Eltern_Decke [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Bett_links.state == OFF && Lampe_Bett_rechts.state == OFF) {[/SIZE]
          [SIZE=2]SleepModus.postUpdate([/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
          [SIZE=2]} [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] {[/SIZE]
          [SIZE=2]Lampe_Eltern_Decke.sendCommand(OFF)[/SIZE]
          [SIZE=2]}[/SIZE][/LEFT]
           
          [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (Lampe_Bett_links [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Eltern_Decke.state == OFF && Lampe_Bett_rechts.state == OFF) {[/SIZE]
          [SIZE=2]SleepModus.postUpdate([/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
          [SIZE=2]} [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] {[/SIZE]
          [SIZE=2]Lampe_Bett_links.sendCommand(OFF)[/SIZE]
          [SIZE=2]}[/SIZE][/LEFT]
           
          [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (Lampe_Bett_rechts [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Eltern_Decke.state == OFF && Lampe_Bett_links.state == OFF) {[/SIZE]
          [SIZE=2]SleepModus([/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE]
          [SIZE=2]} [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] {[/SIZE]
          [SIZE=2]Lampe_Bett_rechts.sendCommand(OFF)[/SIZE]
          [SIZE=2]}[/SIZE][/LEFT]
           
          [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]end[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#7f0055]
          [/COLOR][/SIZE][/LEFT]


          Leider gibt es noch einen Fehler in der Zeile:

          (Item C_Garage_Oben changedorItem C_Garage_Unten changed) && (now.getHourOfDay >= 21or now.getHourOfDay <= 4)

          den ich nicht nicht finde :-/

          Kann mir evtl. jemand das Licht einschalten??

          Viele Grüße
          Joerg

          PS: Den Status vom SleepModus kann ich dann überall abfragen?? Ode nur in der Rule?? Ode rmuß ich dafür ein Item deklarieren??

          Kommentar


            #6
            Hi Jörg,

            im "when" Block darfst Du keinen Code unterbringen (siehe Rules - openhab - How to work with automation rules - empowering the smart home - Google Project Hosting). Du müsstest es also so umschreiben:
            Code:
            when
                 Item C_Garage_Oben changed or Item C_Garage_Unten changed
            then
                 if(now.getHourOfDay >= 21 || now.getHourOfDay <= 4) {
            Zitat von JoergA Beitrag anzeigen
            PS: Den Status vom SleepModus kann ich dann überall abfragen?? Ode nur in der Rule?? Ode rmuß ich dafür ein Item deklarieren??
            Ja, das muss als Item eingetragen sein. Dann kannst Du es überall benutzen und abfragen (Sitemaps, Konsolen, usw.).

            Grüße,
            Kai

            Kommentar


              #7
              Hallo zusammen,

              vielen Dank für die Tips, Hilfe und Geduld!

              In meinem vorherigen Sniplet hatte sich noch der Fehlerteufel eingeschlichen, da ich natürlich nicht die Kontakte der Garage abfrage um unser Licht im Schlafzimmer zu schalten

              Nach den diversen Tips habe ich nun folgendes implementiert:

              1) Items
              Code:
              [SIZE=2][COLOR=#7f0055]
              
              [B][SIZE=2][COLOR=#7f0055]Switch [/COLOR][/SIZE][/B][/COLOR][/SIZE][SIZE=2][COLOR=#000000]Schalter_Bett_links { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"0.0.10"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]}[/COLOR][/SIZE][LEFT]
              [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch [/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#000000]Schalter_Bett_rechts { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"0.0.9"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000]}[/COLOR][/SIZE][/LEFT]
              
              
              [SIZE=2][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#000000] SleepModus[/COLOR][/SIZE]
              [/SIZE][/LEFT]
              Code:
              [SIZE=2][COLOR=#7f0055]
              [LEFT][B][SIZE=2][COLOR=#7f0055]rule [/COLOR][/SIZE][/B]
              2) Rules 2.1) Init
              [/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Initialisierung[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#2a00ff] [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]when[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055] [/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] System [/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]started[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055] [B][SIZE=2][COLOR=#7f0055]then[/COLOR][/SIZE][/B] [/COLOR][/SIZE][SIZE=2]SleepModus.[/SIZE][I][SIZE=2][COLOR=#ab3000][SIZE=2][COLOR=#ab3000]postUpdate[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2](OFF)[/SIZE][/LEFT] [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]end[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055] [/COLOR][/SIZE]
              2.2) Sleepy
              Code:
              [SIZE=2][COLOR=#7f0055]
              [LEFT][B][SIZE=2][COLOR=#7f0055]rule [/COLOR][/SIZE][/B][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]GoSleep[/COLOR][/SIZE][/LEFT]
              
              
              [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]when[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055]
              [/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Item[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Schalter_Bett_links [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]changed [/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]or [/COLOR][/SIZE][/COLOR][/SIZE][/B][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Item[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] Schalter_Bett_rechts [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]changed[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055]
              [B][SIZE=2][COLOR=#7f0055]then[/COLOR][/SIZE][/B]
              [/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2]([I]now[/I].getHourOfDay >= [/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]21[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] || [I]now[/I].getHourOfDay <= [/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]4[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) {[/SIZE][/LEFT]
               
               
              [LEFT][B][U][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/U][/B][U][SIZE=2] (Lampe_Schlaf_Decke [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Bett_links.state == OFF && Lampe_Bett_rechts.state == OFF)[/SIZE][/U][SIZE=2] {[/SIZE]
              [SIZE=2]SleepModus.[/SIZE][I][SIZE=2][COLOR=#ab3000][SIZE=2][COLOR=#ab3000]postUpdate[/COLOR][/SIZE][/COLOR][/SIZE][/I][SIZE=2](ON)[/SIZE]
              [SIZE=2]} [/SIZE][B][U][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/U][/B][SIZE=2] {[/SIZE]
              [SIZE=2]Lampe_Schlaf_Decke.sendCommand(OFF)[/SIZE]
              [SIZE=2]}[/SIZE][/LEFT]
               
              [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (Lampe_Bett_links [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Schlaf_Decke.state == OFF && Lampe_Bett_rechts.state == OFF) {[/SIZE]
              [SIZE=2]SleepModus.postUpdate(ON)[/SIZE]
              [SIZE=2]} [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] {[/SIZE]
              [SIZE=2]Lampe_Bett_links.sendCommand(OFF)[/SIZE]
              [SIZE=2]}[/SIZE][/LEFT]
               
              [LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (Lampe_Bett_rechts [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]received command[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] == OFF && Lampe_Schlaf_Decke.state == OFF && Lampe_Bett_links.state == OFF) {[/SIZE]
              [SIZE=2]SleepModus(ON)[/SIZE]
              [SIZE=2]} [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]else[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] {[/SIZE]
              [SIZE=2]Lampe_Bett_rechts.sendCommand(OFF)[/SIZE]
              [SIZE=2]}[/SIZE]
              [SIZE=2]}[/SIZE]
              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]end[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#7f0055]
              [/COLOR][/SIZE]
              Bei der unterstrichenen Zeile bekomme ich folgenden Fehler im Designer
              Multiple markers at this line
              - Couldn't resolve reference to JvmIdentifiableElement '=='.
              - Couldn't resolve reference to JvmIdentifiableElement '&&'.
              - This expression is not allowed in this context, since it doesn't
              cause any side effects.
              - mismatched input ')' expecting '}'
              - no viable alternative at input 'Lampe_Schlaf_Decke'
              bzw. beim ELSE
              mismatched input 'else' expecting 'end'
              Wennn ich openHAB starte läuft das Init und es kommt keine weitere Fehlermeldung.
              Auszug aus dem LOG
              2013-01-07 21:34:54 - SleepModus state updated to OFF
              2013-01-07 21:34:54 - Holiday state updated to OFF
              2013-01-07 21:35:12 - Lampe_Bett_links received command ON
              2013-01-07 21:35:13 - Lampe_Eltern_Decke received command ON
              2013-01-07 21:35:14 - Lampe_Bett_rechts received command ON
              2013-01-07 21:35:16 - Lampe_Bett_links received command OFF
              2013-01-07 21:35:17 - Lampe_Eltern_Decke received command OFF
              2013-01-07 21:35:19 - Lampe_Bett_rechts received command OFF
              Ich habe dann mal eine Ausgabe hinter "
              if(now.getHourOfDay >= 21 || now.getHourOfDay <= 4) {

              " eingebaut und ...... die kommt gar nicht?! Also scheint diese Abfrage nicht zu funktionieren?!

              Ich habe auch schon && anstatt || getestet, mit dem gleichen Erfolg.

              Habt ihr evtl. eine Idee/Tip??

              VG
              Joerg
              [/LEFT]

              Kommentar


                #8
                Ich glaube nicht, dass received Command in diesem Kontext funktioniert, hab es allerdings auch nicht getestet. Da solltest Du aber auch den state nehmen können, der wird ja nach Empfang des Kommandos intern aktualisiert.

                Ausserdem hast Du beim KNX Binding die PA und nicht die GA angegeben.

                Kommentar


                  #9
                  Zitat von Jockel Beitrag anzeigen
                  Ich glaube nicht, dass received Command
                  das "glaube" ich auch nicht :-)

                  Benutze bitte die spezielle Variable "receivedCommand", die das letzte Command enthält.


                  Zitat von Jockel Beitrag anzeigen
                  Ausserdem hast Du beim KNX Binding die PA und nicht die GA angegeben.
                  genau: gültige GAs werden mit "/" getrennt, als "1/2/3" ... dazu sollte es auch aber auch entsprechende Meldungen im Log geben, oder?
                  Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                  Kommentar


                    #10
                    Zitat von teichsta Beitrag anzeigen
                    das "glaube" ich auch nicht :-)

                    Benutze bitte die spezielle Variable "receivedCommand", die das letzte Command enthält.
                    Werde ich heute Abend einmal testen.

                    Zitat von teichsta Beitrag anzeigen
                    gültige GAs werden mit "/" getrennt, als "1/2/3" ... dazu sollte es auch aber auch entsprechende Meldungen im Log geben, oder?
                    Hmm, werder im events noch im openhab Log steht eine Meldung die auf einen Fehler hinweist, aber: Typischer copy/paste fehler.

                    Da ich ja den Schalter abfragen möchte, muß ich doch auf die Adresse gehen?? Die Logik sollte ja abfragen " Wenn LichtA von Schalter1 oder Schalter2 geschaltet wurde". Wenn ich die GA nehme, würde ja auch Schalter3 ´die Aktion ausführen können. Oder muß ich dann in der ETS eine neue GA erstellen??

                    GA1/1/1 => Schalte LichtA von Schalter1 und Schalter2
                    GA1/1/2 => Schalte LichtA von Schlater3

                    Gruß
                    Joerg

                    Kommentar


                      #11
                      Benutze bitte die spezielle Variable "receivedCommand", die das letzte Command enthält.
                      Gibt es die denn auch bei einem "item changed" Trigger? Laut Doku ja nur bei einem "command received" Trigger.


                      Da ich ja den Schalter abfragen möchte, muß ich doch auf die Adresse gehen?? Die Logik sollte ja abfragen " Wenn LichtA von Schalter1 oder Schalter2 geschaltet wurde". Wenn ich die GA nehme, würde ja auch Schalter3 ´die Aktion ausführen können. Oder muß ich dann in der ETS eine neue GA erstellen??
                      Ich weiss nicht, ob man in openHAB herausbekommen kann, von welcher PA ein Kommando gesendet wurde. Ansonsten würde ich das genau so machen, für jeden Schalter eine eigene GA und die in der Logik entsprechend auswerten.

                      Kommentar


                        #12
                        Zitat von Jockel Beitrag anzeigen
                        Gibt es die denn auch bei einem "item changed" Trigger? Laut Doku ja nur bei einem "command received" Trigger.
                        nein, gibt es nicht, stimmt!

                        Zitat von Jockel Beitrag anzeigen
                        Ich weiss nicht, ob man in openHAB herausbekommen kann, von welcher PA ein Kommando gesendet wurde.
                        nein, kann man aktuell nicht ... wir da mal kurz über eine Implementierung nachgedacht, aber am Ende war das alles nicht sehr generisch/schön/einfach, etc..

                        Zitat von Jockel Beitrag anzeigen
                        Ansonsten würde ich das genau so machen, für jeden Schalter eine eigene GA und die in der Logik entsprechend auswerten.
                        genau, so würde ich es auch machen ... im reinen KNX hast Du (in der Regel) auch nicht die Möglichkeit auf Basis der PA irgendwelche Entscheidungen zu treffen.
                        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                        Kommentar


                          #13
                          Hallo zusammen,

                          ich kämpfe leider immer noch mit diesem Thema :-/

                          Ich habe nun neue GA's erstellt

                          1/1/1 => Decke_von_Bett
                          1/1/2 => Nachttisch1_von_Bett
                          1/1/3 => Nachttisch2_von_Bett

                          2/1/1 => Decke_von_Türe
                          2/1/2 => Nachttisch1_von_Türe
                          2/1/3 => Nachttisch2_von_Türe

                          3/1/1 => Status Decke
                          3/1/2 => Status Nachttisch1
                          3/1/3 => Status Nachttisch2

                          In der .items gebe ich ja eigentlich die geschalteten Adressen ein (1/x/y) und dies wird in openHAB verwendet, die Status GA verwendet openHAB ja gar nicht. Oder??

                          Oder könnte ich die Status GA abfragen

                          When
                          1/x/y changed
                          Then
                          if Received == off and 3/1/1-3 == Off {
                          Alle gehen ins Bett }
                          End

                          Ist natürlich sehr unrund geschrieben, aber sollte doch so funtzen oder??


                          Viele Grüße
                          Joerg

                          Kommentar


                            #14
                            [QUOTE=JoergA;288846]In der .items gebe ich ja eigentlich die geschalteten Adressen ein (1/x/y) und dies wird in openHAB verwendet, die Status GA verwendet openHAB ja gar nicht. Oder??

                            doch, die kannst Du ebenfalls konfigurieren. In openHAB nennen wir die Status-GAs "Listening GAs". Sie werden mit einem "+" gekennzeichnet. Siehe auch: KNXBinding - openhab - Documentation of the KNX Binding Bundle - empowering the smart home - Google Project Hosting.

                            Zitat von JoergA Beitrag anzeigen
                            Ist natürlich sehr unrund geschrieben, aber sollte doch so funtzen oder??
                            jo (unter der Annahme dass Du die Items statt der GAs verwendest).
                            Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

                            Kommentar


                              #15
                              Zitat von teichsta Beitrag anzeigen
                              jo (unter der Annahme dass Du die Items statt der GAs verwendest).
                              Natürlich deshalb ja: im unreinen geschrieben

                              Abba: ich habe das jetzt erst einmal wie folgt in der Items:
                              Code:
                              [LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* Lights */[/COLOR][/SIZE]
                              [/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* [U]Obergeschoss[/U] */[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT]
                               
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055]
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Decke [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Schlafzimmerdecke[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/0+0/1/0"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE]
                              
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
                              [SIZE=2][COLOR=#7f0055]
                               
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Bett_links [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Nachttisch[/U] [U]1[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/1+0/1/1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE]
                              
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
                              [SIZE=2][COLOR=#7f0055]
                               
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Bett_rechts [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Nachttisch 2[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/2+0/1/2"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE]
                              
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
                              [SIZE=2][COLOR=#7f0055]
                               
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Decke_Tuer [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Schlafzimmerdecke[/U] [U]Türe[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/50+0/1/0"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE]
                              
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
                              [SIZE=2][COLOR=#7f0055]
                               
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Bett_links_Tuer [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Nachttisch 1[/U] [U]Türe[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/51+0/1/1"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE]
                              
                              [B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Switch[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT]
                              [SIZE=2][COLOR=#7f0055]
                               
                              [LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000]Lampe_OG_Schlafz_Bett_rechts_Tuer [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"[U]Nachttisch 2[/U] [U]Türe[/U]"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] (OG_Schlaf, Lampen) { knx=[/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"1/1/52+0/1/2"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] }[/COLOR][/SIZE][/LEFT]
                              Abba: Dies funzt wie Kraut und Rüben?! Entweder wird der Status nur von einer GA an die andere übertragen oder bei Nachttisch 2 geht die Decke (in openHAB; nicht physikalisch) an???? Ich habe auch schon { knx="1/1/52+<0/1/2" } getestet! Mit den gleichen Erfolg.

                              In der ETS sind die GA's entsprechend mit den TS verknüpft und dort funktioniert das Update der LED/Status auch ohne Probleme?!

                              Ich bin mal wieder Rudi Ratlos

                              Hat jemand noch weitere Tips??

                              VG
                              Joerg

                              Kommentar

                              Lädt...
                              X