Ankündigung

Einklappen
Keine Ankündigung bisher.

byte to bits plugin

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

    byte to bits plugin

    Hallo,

    ich möchte eine Byte Variable in einzelne Bit umwandeln.

    aus Input=5 wird also
    00000101

    Output0=1
    Output1=0
    Output2=1
    Output3=0
    Output4=0
    Output5=0
    Output6=0
    Output7=0

    Geht das ohne plugin?

    Ansonsten (falls nur mit Plugin):
    Ich habe noch nicht kapiert, wie man einem Plugin Parameter übergibt?

    Gruß,
    Hendrik

    #2
    Hallo Hendrik,

    woher kommt denn das Byte? Über KNX? Als welcher DPT?

    Das sollte man einfach über eine Logik hinbekommen.

    Angenommen der Wert liegt als Integer (i) vor:

    Code:
    bits = bin(i)[2:].zfill(8)
    Output0=bits[0]
    Output7=bits[7]
    Und Parameter übergibt man Plugins über die Attribute in der plugin.conf.

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo,

      danke für deine Antwort.
      Noch klappt's nicht:
      Code:
      2013-05-26 11:20:09,454 ByteToBit    WARNING  Logic: ByteToBit, File: bytetobit.py, Line: 2, Method: <module>, Exception: object cannot be interpreted as an index -- scheduler.py:_task:273
      2
      Code:
      root@HomeServer:~# cat /usr/local/smarthome/logics/bytetobit.py
      #!/usr/bin/env python
      bits = bin(sh.multimedia.zones)[2:].zfill(8)
      sh.multimedia.zoneAactive=bits[0]
      sh.multimedia.zoneBactive=bits[1]
      sh.multimedia.zoneCactive=bits[2]
      sh.multimedia.zoneDactive=bits[3]root@HomeServer:~#
      root@HomeServer:~# cat /usr/local/smarthome/items/multimedia.conf
      [multimedia]
        [[zones]]
          type=num
          cache=on
          enforce_updates=on
          knx_dpt = 5
          knx_send = 9/1/55
          knx_listen = 9/1/55
          knx_init = 9/1/55
        [[zoneAactive]]
          type=bool
          cache=on
          enforce_updates=on
          knx_dpt = 1
          knx_send = 9/1/56
        [[zoneBactive]]
          type=bool
          cache=on
          enforce_updates=on
          knx_dpt = 1
          knx_send = 9/1/57
        [[zoneCactive]]
          type=num
          cache=on
          enforce_updates=on
          knx_dpt = 1
          knx_send = 9/1/58
        [[zoneDactive]]
          type=num
          cache=on
          enforce_updates=on
          knx_dpt = 1
          knx_send = 9/1/59
      
      
      root@HomeServer:~# cat /usr/local/smarthome/etc/logic.conf
      #[MyLogic]
      #    filename = logic.py
      #    crontab = init
      
      [ByteToBit]
           filename=bytetobit.py
           watch_item=multimedia.zones
      Hab ich etwas falsch verstanden, beim Umsetzen?
      i in deinem Beispiel ist doch der Integer (ist übrigens ein KNX-DPT5).


      Und noch eine Frage: Der Verstärker (TEAC AG980 angeschlossen über das MDT-Multimedia-Interface) sendet leider nicht von sich aus Updates. Ist es möglich, dass beim Lesen eines Objektes vorher ein "Event-Request" (eine 1 auf einer GA) ausgelöst wird?


      Gruß,
      Hendrik

      Kommentar


        #4
        Hallo Hendrik,

        tja, das sieht nach einem klassischen Anfängerfehler aus ;-)

        Code:
        bits = bin(sh.multimedia.zones[COLOR="Red"]()[/COLOR])[2:].zfill(8)

        Zitat von henfri Beitrag anzeigen
        Und noch eine Frage: Der Verstärker (TEAC AG980 angeschlossen über das MDT-Multimedia-Interface) sendet leider nicht von sich aus Updates. Ist es möglich, dass beim Lesen eines Objektes vorher ein "Event-Request" (eine 1 auf einer GA) ausgelöst wird?
        Ich verstehe die Frage leider nicht. Was meinst Du mit lesen eines Objektes? Du kannst mit dem KNX-Plugin groupreads absetzen. Ist es das?

        Bis bald

        Marcus

        Kommentar


          #5
          Hallo,
          Zitat von mknx Beitrag anzeigen
          tja, das sieht nach einem klassischen Anfängerfehler aus ;-)
          Da bin ich ja beruhigt ;-)

          Ich bin jetzt ein Stück weiter. Aber:
          Code:
          2013-05-26 12:14:57,049 SmartHome.py DEBUG    multimedia.zones = 9 via KNX 1.0.35 -- item.py:_update:210
          2013-05-26 12:14:57,050 SmartHome.py DEBUG    Triggering ByteToBit - by: Item source: multimedia.zones destination: None value: 9 -- scheduler.py:trigger:117
          2
          Aber an die Adressen 55 ff werden die Bits nicht gesendet...

          Ich verstehe die Frage leider nicht. Was meinst Du mit lesen eines Objektes? Du kannst mit dem KNX-Plugin groupreads absetzen. Ist es das?
          Na, wenn ein Busteilnehmer eine Adresse liest, soll sh.ph erstmal eine andere Adresse senden. Daraufhin kommt eine Antwort vom Multimedia-Interface, welches einige GAs sendet.

          Beispiel:
          Read von Visu auf 9/1/57
          sh.py sendet 9/1/254 ("Event Request")
          Multimedia-Interface fragt Verstärker ab
          und sendet 9/1/55
          Die Logik wird daraufhin aufgerufen und 9/1/54 wird von bittobyte.py geschrieben.

          Gruß,
          Hendrik

          Kommentar


            #6
            Hallo Hendrik,

            Du musst Dir beim setzen von Itemwerten das '=' verbieten.

            Item('Wert') setzt den Wert.

            Zitat von henfri Beitrag anzeigen
            Na, wenn ein Busteilnehmer eine Adresse liest, soll sh.ph erstmal eine andere Adresse senden. Daraufhin kommt eine Antwort vom Multimedia-Interface, welches einige GAs sendet.

            Beispiel:
            Read von Visu auf 9/1/57
            sh.py sendet 9/1/254 ("Event Request")
            Multimedia-Interface fragt Verstärker ab
            und sendet 9/1/55
            Die Logik wird daraufhin aufgerufen und 9/1/54 wird von bittobyte.py geschrieben.
            das geht momentan nicht einfach. Man könnte es über eine Logik realisieren die auf die GA hört und dann einfach groupreads abruft.

            Bis bald

            Marcus

            Kommentar


              #7
              Läuft. Danke!

              Letzte Frage (OT):
              Gibt es von jemandem schon ein debian/ubuntu startskript?

              Gruß,
              Hendrik

              Kommentar


                #8
                https://knx-user-forum.de/smarthome-...h-starten.html
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  #9
                  Danke!

                  Kommentar

                  Lädt...
                  X