Ankündigung

Einklappen
Keine Ankündigung bisher.

EnerGenie Steckdosenleiste EG-PMS2

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

    EnerGenie Steckdosenleiste EG-PMS2

    Hallo zusammen,

    kann mir jemand beanworten ob diese Steckdosenleiste mit OH2 funktioniert.
    Aktuell nutze ich diese mit OH1.8. Unter folgendem Link wird beschrieben was in OH1.8 nötig war um diese zu betreiben.

    Vielen Dank.


    #2
    Sollte eigentlich unter OH2 genauso funktionieren.

    Kommentar


      #3
      Hi, danke für deine Antwort.

      Ich versuche gerade die Leiste via OH2 zu schalten. Über die Konsole funktioniert das ohne Probleme, ich glaube meine commands passen nicht wirklich.
      Muss man in OH2 was beachten in Bezug auf die Syntax der exec:commands?

      Aktuell sehen diese so aus:
      items:
      Switch GB_02 { exec=">[OFF:sudo sispmctl -d 1 -f 2] >[ON:sudo sispmctl -d 1 -o 2]" }

      sitemap:
      Switch item=GB_02 label="Socket2" mappings=[ON="ON", OFF="OFF"]

      Vielen Dank.

      Kommentar


        #4
        mein Tipp ins Blaue wäre, dass der Pfad zum Script bzw. Programm mit angegeben werden muss.

        Kommentar


          #5
          Ja, das Binding funktioniert auch unter openHAB 2.x. Allerdings wird die energenie.cfg nicht automatisch angelegt. Wenn man die Datei manuell erstellt und die entsprechenden Einträge aus einer 1.x openhab.cfg Datei kopiert ( energenie: am Zeilenanfang entfernen), dann sollte es gehen. Bei mir funktioniert es. Sobald ich etwas mehr Zeit habe, werde ich das Binding nach OH2 portieren.

          Kommentar


            #6
            Hi hmerk,

            welches Bindings meinst du, gibt es eins für die USB Variante?
            Kann mir hiermit eventuell jemand weiterhelfen?

            Vielen Dank.

            Kommentar


              #7
              Sorry, hab nicht gesehen das es die USB Version ist. Dafür gibt es leider kein binding.

              Kommentar


                #8
                Hallo zusammen,

                Meine Konfiguration sieht aktuell wie folgt aus. Leider funktioniert das Ganze immernoch nicht wie gewünscht.

                item:
                Switch GB_01_01 {channel="exec:command:GB_01_01_on:run"}
                Switch GB_01_00 {channel="exec:command:GB_01_01_off:run"}

                thing:
                Thing exec:command:GB_01_01_on [command="sudo sispmctl -d 1 -o 1", interval=0, autorun=false]
                Thing exec:command:GB_01_01_off [command="sudo sispmctl -d 1 -f 1", interval=0, autorun=false]

                sitemap:
                Switch item=GB_01_01 label="Power on"
                Switch item=GB_01_00 label="Power off"

                In der Sitemap sieht das dann folgendermaßen aus:

                power_off.PNG
                power_on.PNG

                Folgende Problemstellung:

                1.) Warum wird der Status des Items und das ensprechende Icon (rot - grün) nicht auf aktualisiert?
                2.) Gibt es eine Möglichkeit das ganze in einen Switch zu packen?
                Das Ganze sah unter OH1.8 folgendermaßen aus:
                Switch GB01{ exec=">[OFF:sudo sispmctl -d 1 -f 1] >[ON:sudo sispmctl -d 1 -o 1]"

                Vielen Dank.

                Kommentar


                  #9
                  So, wie es aussieht, solltest Du eine Zwischenschicht einziehen, also ein bash Script anlegen, in dem die beiden Kommandos ausgeführt werden. Dieses Kommando sollte dann mit ON oder OFF als Parameter aufgerufen werden können. Mehr oder weniger so:
                  Code:
                  #! /bin/sh
                  case "$1" in
                    ON)
                      sudo sispmctl -d 1 -o 1
                  ;;
                    OFF)
                      sudo sispmctl -d 1 -f 1
                  ;;
                    *)
                          exit 1
                  esac
                  exit 0
                  Dieses Script speicherst Du irgendwo ab und rufst es dann von openHAB aus per exec Binding auf, statt ON oder OFF schreibst Du aber status in den Befehlsaufruf, den Switch definierst Du dann nur einmal, dann wird beim Betätigen des Switches jeweils das Script mit dem Parameter ON oder OFF aufgerufen, je nachdem, wie der Switch dann steht.

                  Eine Schwierigkeit könnte noch mit dem sudo einher gehen, es kann gut sein, dass das so nicht funktioniert. Entweder erlaubst Du mittels visudo das Benutzen ohne Passwort (hmm...), oder Du sorgst Dafür, dass sispmctl auch ohne sudo funktioniert (vielleicht muss der User, der den Befehl aufruft, nur in einer bestimmten Gruppe sein)

                  Kommentar


                    #10
                    Hi, danke für deine schnelle Reaktion.

                    wie muss die Syntax denn genau aussehen?

                    thing:
                    Thing exec:command:GB_01_01_status [command="bash /etc/openhab2/scripts/GB_01_01.sh"]

                    item:
                    Switch GB_01_01 {channel="exec:command:GB_01_01_status:run"}

                    sitemap:
                    Switch item=GB_01_01 label="Power" mappings=[ON="ON", OFF="OFF"]

                    In dem Eintrag für das Item muss doch noch wie du geschrieben hast der status eingebaut werden, richtig?
                    Leider funktioniert hier die Syntax aus Openhab 1.8 nicht mehr die wie folgt aussah:

                    Switch GB_01 { exec=">[OFF:sudo sispmctl -d 1 -f 1] >[ON:sudo sispmctl -d 1 -o 1]" }


                    Zuletzt geändert von crax; 17.02.2017, 09:18.

                    Kommentar


                      #11
                      Wenn Du das Exec2 Binding verwendest, musst Du ein Thing anlegen. Nehmen wir an, Du hast ein bash-Script ähnlich dem, was ich im Vorpost skizziert habe unter dem Namen egswitch.sh, dann musst Du diese Script im Thing aufrufen:
                      Code:
                      Thing exec:command:GB_01_01 [command="egswitch.sh %2$s", interval=0, autorun=false]
                      Wenn Du nun den Switch anlegst, nimmst Du Bezug auf dieses Thing:
                      Code:
                      Switch GB_01_01 {channel="exec:command:GB_01_01:run"}
                      Ob Du dann einen Schalter oder lieber zwei Schaltflächen nimmst, ist egal, beides sollte funktionieren.
                      Code:
                      Switch item=GB_01_01 label="Power" mappings=[ON="ON", OFF="OFF"]
                      Switch item=GB_01_01 label="Power"
                      Wichtig ist noch, dass das Script im Suchpfad liegt, sonst musst Du halt den kompletten Pfad angeben. Zum testen bietet es sich an, im Script selbst z.B. ein echo `date` $1 >> /tmp/egswitch einzubauen, ganz am Anfang, dann kannst Du leicht über das Vorhandensein dieser Datei (und im Zweifel über deren Inhalt) überprüfen, dass openHAB das Script auch korrekt aufgerufen hat.

                      Kommentar


                        #12
                        Wenn ich das Script über das Terminal direkt aufrufe, sprich via ./GB_01_01.sh ON bzw. OFF funktioniert alles so wie es sein sollte. Leider funktioniert das aktuell nur über das Terminal und noch nicht aus Openhab heraus.

                        openhab> log:tail zeigt folgendes an:
                        12:35:31.598 [INFO ] [smarthome.event.ItemCommandEvent ] - Item 'GB_01_01' received command ON
                        12:35:31.623 [INFO ] [marthome.event.ItemStateChangedEvent] - GB_01_01 changed from OFF to ON
                        12:35:31.630 [INFO ] [marthome.event.ItemStateChangedEvent] - GB_01_01 changed from ON to OFF
                        12:35:31.640 [INFO ] [marthome.event.ItemStateChangedEvent] - GB_01_01 changed from OFF to ON

                        Die Steckdose wird nicht eingeschaltet, lediglich das Item erhält den command.

                        Eine Idee woran das liegen könnte?

                        meine Konfig:

                        thing:
                        Code:
                        Thing exec:command:GB_01_01 [command="/etc/openhab2/scripts/GB_01_01.sh %2$s", interval=0, autorun=false]
                        item:
                        Code:
                        Switch GB_01_01 {channel="exec:command:GB_01_01:run"}
                        sitemap:
                        Code:
                        Switch item=GB_01_01 label="Power" mappings=[ON="ON", OFF="OFF"]
                        Script:
                        Code:
                        #! /bin/sh
                        case "$1" in
                          ON)
                            sudo sispmctl -d 1 -o 1
                        ;;
                          OFF)
                            sudo sispmctl -d 1 -f 1
                        ;;
                          *)
                                exit 1
                        esac
                        exit 0
                        Zuletzt geändert von crax; 18.02.2017, 12:50.

                        Kommentar


                          #13
                          Hast Du mal für die Fehlersuche das echo eingebaut?

                          Code:
                           #! /bin/sh
                          echo `date` $1 >> /tmp/egswitch
                          case "$1" in
                            ON)
                              sudo sispmctl -d 1 -o 1
                          ;;
                            OFF)
                              sudo sispmctl -d 1 -f 1
                          ;;
                            *)
                                  exit 1
                          esac
                          exit 0
                          Und nach einem Schaltvorgang ein
                          Code:
                          cat /tmp/egswitch
                          um zu überprüfen, ob das Script überhaupt aufgerufen wurde.

                          Und nicht vergessen, das sudo solltest Du versuchen los zu werden, oder Du musst dem User, unter dem openHAB läuft (also normalerweise openhab) in der Datei /etc/sudoers (mittels visudo! sonst könntest Du Dich leicht aussperren) das Ausführen des Befehls sispmctl ohne Passworteingabe erlauben.

                          Kommentar


                            #14
                            Hi, ja das habe ich gemacht.
                            Es scheint so als würde das Thing nicht greifen, sprich ich erhalte in der Datei, welche durch das Echo generiert wird keinen Eintrag sobald ich über OH schalte.
                            Ich will damit sagen, dass das Script über OH nicht angesprochen bzw. ausgeführt wird.

                            Der Eintrag erscheint sobald ich manuell über das Terminal schalte.

                            Der Eintrag sieht wie folgt aus:
                            Tue Feb 20 11:34:35 CET 2017 ON

                            Kommentar


                              #15
                              Hi, folgender ERROR erhalte ich im openhab.log:

                              Code:
                              [ERROR] [hab.binding.exec.handler.ExecHandler] - An exception occurred while formatting the command line with the current time and input values : 'Format specifier '%2$s''^C

                              Kommentar

                              Lädt...
                              X