Ankündigung

Einklappen
Keine Ankündigung bisher.

Wiregate und Shell Skripte für Ansteuerung BTicino MyHome

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Wiregate und Shell Skripte für Ansteuerung BTicino MyHome

    Hallo,

    mein Name ist Johannes und ich komme aus Österreich. In meinem Haus verwende ich BTicino MyHome zur Steuerung des Lichts, Audio,...

    Ich interessiere mich für Wiregate (digitales Schlüsselbrett, Multisensor).

    Meine Frage ist nun, kann ich zum Beispiel bei überschreiten eines Temperaturwertes automatisch ein Shell-Script starten lassen. Damit wäre es mir dann nämlich möglich bei Ereignissen im 1-Wire-Bus Ereignisse im BTicino MyHome Bus auszulösen.

    Oder gibt es irgendwo Dokus um ein eigenes Plug-In entwickeln zu können.

    DANKE

    lg, Johannes

    #2
    Hoi Johannes

    Wilkommen im Forum.

    Das was Du machen möchtest ist natürlich möglich.
    Plugin Beispiele gibt es schon einige hier.

    Mein WG erledigt die unterschiedlichsten Aufgaben zuverlässig.

    https://knx-user-forum.de/forum/supp...wiregate/13980
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Hat jemand Shellscript gesagt? :-)

      Ist ganz einfach. Im crontab aufrufen mit dem Temperaturlimit:

      /usr/local/bin/tempcheck 40

      /usr/local/bin/tempcheck
      Code:
      # elektrische Wasseraufheizung
      # V 0.1 lbau
      
      TempWasser=`groupcachereadsync local:/tmp/eib 14/5/11|sed s/'Write from 0.0.0:'//| tr -d ' '|/usr/local/bin/conv.pl|cut -c -2`
      
      #echo $TempWasser
      
      if (( $TempWasser<$1 ))
           then
              groupswrite local:/tmp/eib 10/1/1 1  (Hier den auszuführenden Befehl einfügen)
      fi
      /usr/local/bin/conv.pl
      Code:
      #!/usr/bin/perl
      
      # 85DA -5.5
      # 8500 -7.68
      # 190F 21.68
      # 19CC 36.8
      
      my $bin = "";
      #my $hex = "16D6";
      my $hex = <STDIN>;
      #my $hex = $ARGV[0];
      my $temp = unpack("B32", pack("N", hex $hex));
      
      my $bin = substr($temp, -16);
      
      #print "hex: $hex = bin: $bin\n";
      
      my $sign = substr($bin,0,1);
      my $exp = substr($bin,1,4);
      my $mant = substr($bin,5,11);
      
      @chars = split //, $mant;
      
      $mantrev = "";
      foreach (@chars) {
      if ($_ eq "0") {
      $mantrev .= "1";
      } elsif ($_ eq "1") {
      $mantrev .= "0";
      }
      }
      
      # print "sign: $sign exp: $exp mant: $mant mantreverse: $mantrev\n";
      
      my $signdec = bin2dec($sign);
      my $expdec = bin2dec($exp);
      
      my $mantdec = "";
      
      if ($signdec eq 0) {
      $mantdec = bin2dec($mant);
      } elsif ($signdec != 0) {
      $mantdec = bin2dec($mantrev);
      $mantdec =- $mantdec-1;
      }
      
      
      # print " signdec: $signdec\n expdec: $expdec\n mantdec: $mantdec \n";
      
      
      $value1 = $mantdec;
      $value2 = 2**$expdec;
      $value3 = $value1 * $value2;
      $value4 = $value3*(0.01);
      # print "value1: $value1 value2: $value2 value3: $value3 value4: $value4 \n";
      
      #print "\n parameter1 : $ARGV[0]\n";
      print $value4;
      #return $value4;
      
      sub bin2dec {
      return unpack("N", pack("B32", substr("0" x 32 . shift, -32)));
      }
      Das reicht um etwas mit der Temperatur zu machen.

      Lbau

      Kommentar


        #4
        Wow, sehr schön!

        Kommentar


          #5
          Ich habe zu Testzwecken auf einem Linux-Rechner EIBD (EIBD wird so gestartet, da ich über keinen KNX-Bus verfüge: eibd -d -t1023 -i ip:224.0.23.12) installiert. Weiters habe ich ein Skript geschrieben (bzw. bin noch dabei) das den Bticino MyHome Bus passiv mitliest und die empangenen Befehle und Werte mit groupswrite an EIBD übergibt (groupswrite ip:localhost 1/1/1 1). Mit groupsocketlisten (groupsocketlisten ip:localhost) kann ich nun meinen virtuellen KNX-Bus mitlesen.

          Wenn ich nun ein Wiregate verwende, müsste es möglich sein meine virtuellen Gruppenadressen zu lesen und ggf. auch zu schreiben (dazu muss ich mir dann noch ein Script erstellen mit dem ich die Gruppenadressen vom virtuellen KNX-Bus mitlese und wieder als Biticino MyHome Befehle auf meinen Bus sende). Somit sollte es auch möglich sein eine Visualisierung mit CometVisu zu erstellen und damit ebenfalls Schaltbefehle auszuführen. Noch dazu wären zukünftige 1-Wire Sensoren ebenfalls eingebunden.

          Sehe ich das so richtig oder habe ich hier einen Denkfehler?

          Kommentar


            #6
            Grundsätzlich nichts falsch, man kann den KNX auch als "dummy" betreiben wenn eben keiner da ist, viel von dem Aussenrum basiert halt nunmal hier&jetzt darauf (sprich: ohne gehts nicht, dummy reicht aber)

            Makki
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar

            Lädt...
            X