Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Plugin für Allnet ALL3000 und ALL4000

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

    Plugin für Allnet ALL3000 und ALL4000

    Hallo zusammen,

    nachdem ich hier schon seit einem halben Jahr täglich im Forum stöbere, hab ich mir gedacht, ich muss den Read-Only-Modus endlich mal beenden und etwas beisteuern.

    Vorab großes Lob an die Projekte SmartHome.py und SmartVISU. Sehr durchdacht und vielversprechend.

    Da sich meine KNX-Installation noch in der Planungsphase befindet, habe ich versucht die Projekte mit meinen aktuellen Spielzeug-Komponenten (Homematic, Allnet, etc.) zu testen. Dabei sind ein paar PlugIns entstanden, die vielleicht auch anderen helfen. Hier zunächst das Allnet-PlugIn.

    Aber kurz zur Abgrenzung ;-) : In meiner Umgebung funktioniert der aktuelle Stand der PlugIns sehr gut und sie tun, was sie sollen. Allerdings beschäftige ich mich erst seit wenigen Tagen mit SH.py und kann daher nicht mit Sicherheit sagen, dass meine PlugIns dem gewünschten Standard entsprechen. Außerdem bin ich eher Integrator als Entwickler (bislang schon mal gar nicht mit Python). Daher freue ich mich über jede Kritik und jeden Fehler oder auch Schönheitsfehler, den ihr findet.

    Das PlugIn unterstützt aktuell die folgenden Komponenten:
    Allnet ALL3000 (Link)
    Allnet ALL4000 (Link)
    Allnet ALL4000V2 (baugleich mit ALL4000, durch Metallgehäuse aber keine Ansteuerung der Funkdosen möglich)

    Prinzipiell sollten damit auch die neueren Geräte ALL3500, ALL4500 und ALL5000 integrierbar sein. Falls jemand Bedarf hat und mir einen Auszug der XML-Seite zuschickt, kann ich das gerne noch integrieren.

    Zum Testen des PlugIns einfach in dem PlugIn-Verzeichnis einen Unterordner ‚allnet‘ anlegen und die angefügten Files in das Verzeichnis kopieren (bei dem Raspberry-Image /usr/smarthome/plugins/allnet/).

    Die Konfiguration muss angepasst werden, wie folgt:

    PlugIn-Konfiguration - /usr/smarthome/etc/plugin.conf
    Code:
    [allnet]
        class_name = Allnet
        class_path = plugins.allnet
        host0 = 192.168.50.200   # IP-Adresse der Allnet Sensorbox
        host1 = 192.168.50.201   # aktuell unterstützt das PlugIn maximal 3 Geräte
        #host2 = 0.0.0.0
        type0 = ALL4000   # mögliche Optionen sind 'ALL3000' und 'ALL4000'
        type1 = ALL3000
        #type2 = none
        cycle = 15   # Zeitintervall, in dem die Sensorbox abgefragt wird
                         # Angabe in Sekunden, Werte unter 5 Sek. können zu einer hohen CPU-Last der Box führen.
    Beispiele für das Anlegen von Items:
    Code:
    [AllnetDemo]
       name = AllnetDemo
       [[Temperatur]]
         name = Temperatur
         type = num   # Das Erfassen von Messdaten setzt 'type = num' voraus
         allnet_host = 0   # ID der Sensorbox laut plugin.conf, hier host0
         allnet_sensor_id = 8   # ID des Sensor-Ports, Zählweise beginnt bei 0 (ALL3000: 0 bis 7, ALL4000: 0 bis 15)
       [[Luftfeuchtigkeit]]
         name = Luftfeuchtigkeit
         type = num   # Das Erfassen von Messdaten setzt 'type = num' voraus
         allnet_host = 1   # ID der Sensorbox laut plugin.conf, hier host1
         allnet_sensor_id = 2   # ID des Sensor-Ports, Zählweise beginnt bei 0 (ALL3000: 0 bis 7, ALL4000: 0 bis 15)
       [[Funkschalter]]
         name = Light
         type = bool   # Das Schalten von Ports setzt 'type = bool' voraus
         allnet_host = 0   # ID der Sensorbox laut plugin.conf, hier host0
         allnet_switch_id = 1   # ID des Schalt-Ports, Zählweise beginnt bei 0 (ALL4000 Funkschalter: 0 bis 15)
         allnet_switch_type = 2   # Typ des Ports, der geschaltet werden soll
    
    # Mögliche Werte für 'allnet_switch_type':
    # 0 - Default (2 - Funksteckdosen)
    # 1 - Interne Relais (nach Relaisnummer 0..3) 0 oder 1
    # 2 - Funksteckdosen (nach Dosennummer 0...15) 0 oder 1
    # 3 - I2C Einzel-Ausgänge (Portweise numeriert von 0...7) 0 oder 1 --> mit diesem PlugIn bisher ungetestet
    # 4 - I2C 8-fach-Ausgänge (Portweise numeriert von 0...7) 0...255 --> mit diesem PlugIn bisher ungetestet
    # 5 - interne TTL-Ausgänge (Chipweise numeriert von 0..7) 0...255 --> mit diesem PlugIn bisher ungetestet
    Angehängte Dateien

    #2
    Hallo David,

    erst auch einmal Herzlich Willkommen und in der Entwicklergemeinde von SmartHome.py.

    Freut mich das unsere Projekte Dir gefallen.


    Ich habe auch für Dich ein Feedback.
    • Die Links zu den Allnet sind nicht erreichbar
    • urllib2 hat leider ein Speicherleck. Schau dir mal sh.tools.fetch_url() an. Du könntest die Funktion wahrscheinlich auch direkt verwenden.
    • Code:
      update_item(self, item, caller=None, source=None):
      # in folgendes ändern
      update_item(self, item, caller=None, source=None, dest=None):
    • Unter https://github.com/mknx/smarthome/tree/master/dev habe ich paar Dinge/Fetzen für Entwickler dokumentiert. pep8 bzw. flake8 sind hier Stichworte die sehr helfen.
    • Auch Dir empfehle ich das mpd-Plugin als Basis für den Umgang mit mehreren Geräten.


    Bis bald

    Marcus

    Kommentar


      #3
      Hallo Marcus,

      auch hier danke für Deine Rückmeldung.

      Die Links oben verweisen auf den FTP-Bereich von Allnet. Über den Browser scheinen sie sauber zu funktionieren. Über Tapatalk hatte ich aber auch Probleme. Leider gibt es von Allnet keine anderen direkt verlinkbaren Seiten zu den beiden Geräten. Unter ALLNET GmbH -Produkte kann man die Geräte in der Dropdown-Box auswählen und kommt so auch zur Software und den Handbüchern.

      fetch_url und das mpd-Plugin schau ich mir bei Gelegenheit mal an und baue das hier noch mal etwas um.

      Ich gehe aber davon aus, dass nur die wenigsten hier im Forum Allnet einsetzen und daher der Bedarf an dem Plugin recht gering ist. Daher würde ich das mal zurückstellen. Seitdem ich SH.py kenne, sind einfach zu viele "Baustellen" aufgegangen, die ich mir ankucken will.

      Viele Grüße,

      David

      Kommentar

      Lädt...
      X