Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Entwicklung Plugin mit mehreren IP Verbindungen

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

  • JuMi2006
    antwortet
    Zitat von Foxi352 Beitrag anzeigen
    Das mit den ip's im item oder im parent wollte ich wahrscheinlich auch so machen. Aber warum brauche ich dann noch die ip's in der plugins.conf ? Ich kann sie ja beim parse_item rausfilteren und in einer Liste speichern ?
    Kann man auch so machen, dann machen Sie in der plugin.conf aber gar keinen Sinn. Wichtig ist bloss dass die Verbindung eben erst nach parse_item augebaut wird. Aber je mehr ich darüber nachdenke glaube ich dass man das wohl doch in der plugin.conf mehrmals angeben muss, also denon1, denon2 usw.. Das wären ja Threads die permanent laufen.

    Zitat von Foxi352 Beitrag anzeigen
    Das Rest des squeezebox_send kommando's wird so 1:1 glaube ich übertragen. Das Beispiel war nicht so glücklich gewählt, ausser ich irre mich ;-)
    )
    Da irrst Du . Sieh dir mal die Doku dazu an:
    Squeezebox ? SmartHome.py 1.0 documentation
    Hier ein Beispiel:
    Code:
      [[Playlist_Index]]
        type = num
        visu = yes
        squeezebox_send = <playerid> playlist index {}
        squeezebox_recv = <playerid> playlist index
    Wenn man Playlist_Index auf 2 setzt dann wird "xx:xx:xx:xx:xx:xx playlist index 2" an die Squeezebox gesendet. Vor allem bei Favoriten, Playlisten, Zonen usw. ist das nützlich.

    Einen Kommentar schreiben:


  • Foxi352
    antwortet
    Hallo,

    Mal so auf die schnelle eine 1. Antwort :-)

    Ich würde versuchen in der plugin.conf eine Liste der IPs zu machen und dann im Plugin die Liste der IPs auswerten. Das item wird dan über denon_ip=xxx.xxx.xxx.xxx oder eben ein parent-item ausgewertet.
    Das mit den ip's im item oder im parent wollte ich wahrscheinlich auch so machen. Aber warum brauche ich dann noch die ip's in der plugins.conf ? Ich kann sie ja beim parse_item rausfilteren und in einer Liste speichern ?

    Weiterhin wäre es sinnvoll das Plugin mit einem großen dict/Command-Set auszustatten in dem man bestimmte Strings der Befehle bequem auf bool oder num mappen kann und in denon_send mit Platzhaltern arbeiten kann (vgl. Squeezebox).
    Das mit dem dict / command set versteht sich von alleine, alles andere ist dem User nicht zuzumuten. Er müsste ansonsten die Befehle kennen. Ich glaube aber der squeezebox plugin hat nur ein Platzhalter für die MAC adresse. Das Rest des squeezebox_send kommando's wird so 1:1 glaube ich übertragen. Das Beispiel war nicht so glücklich gewählt, ausser ich irre mich ;-)

    Ich schick die was sobald ich was habe. Momentan ist es nicht viel mehr als das skleton was einen Befehl rausfiltert :-)

    Ich hab zwar ein paar Programmiererfahrungen, allerdings bisher nicht mit Python. Mein Problem mit mehreren connections objects ist noch nicht gelöst. Denn die Verbindungen sollten bestehen bleiben solange SH läufft ...

    Villeicht kann mknx sich zum letzten Punkt äusseren ? :-)

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Hallo Serge,

    ich besitze seit dem Wochenende auch einen Denon ... wäre gut wenn man sich da austauschen kann. Wäre also hilfreich wenn Du den Code vielleicht schon mal zusenden könntest ? Das wäre so ziemlich meine nächste Baustelle gewesen.

    Ich würde versuchen in der plugin.conf eine Liste der IPs zu machen und dann im Plugin die Liste der IPs auswerten. Das item wird dan über denon_ip=xxx.xxx.xxx.xxx oder eben ein parent-item ausgewertet.

    plugin.conf:
    Code:
    [denon]
        class_name = Denon
        class_path = plugins.denon
        host = 192.168.2.101 | 192.168.2.102 | 192.168.2.103
    item.conf in 2 Möglichkeiten:
    Code:
    [EG]
        [[Stube]]
            [[[Denon1]]]
                [[[[Power]]]]
                    type = bool
                    visu_acl = rw
                    denon_send = power
                    denon_ip = 192.168.2.101
            [[[Denon2]]]
            ip=192.168.2.1012
                [[[[Power]]]]
                    type = bool
                    visu_acl = rw
                    denon_send = power
    Weiterhin wäre es sinnvoll das Plugin mit einem großen dict/Command-Set auszustatten in dem man bestimmte Strings der Befehle bequem auf bool oder num mappen kann und in denon_send mit Platzhaltern arbeiten kann (vgl. Squeezebox).

    Also ohne jetzt die Syntax genau im Kopf zu haben sowas:
    Code:
    dict=(
    ("PW":("ON":1,"STANDBY":0)),
    )
    Aber vielleicht ist das auch zu kompliziert gedacht. Näher damit beschäftigt hab ich mich noch nicht.

    Einen Kommentar schreiben:


  • Foxi352
    hat ein Thema erstellt - √ - Entwicklung Plugin mit mehreren IP Verbindungen.

    - √ - Entwicklung Plugin mit mehreren IP Verbindungen

    Hallo,

    Ich lese hier schon seit 2 Jahren, dies ist aber mein erstes Post. Darum will ich mich kurz vorstellen. Ich lebe in Luxemburg und habe letztes Jahr ein Haus komplett renoviert. Dabei habe ich alles auf KNX umgebaut. Seit letzter Woche experimentiere ich auch mit 1-Wire zur Temperaturmessung der Heizungsrohre e.t.c.

    Ich habe SH/ SmartVisu vor ungefähr 2 Wochen auf einem RPI installiert (2.7 Image) und bin begeistert vun der Einfachheit des Systems. Ich nutze neben dem Minimum noch folgende Plugins: KNX, 1-Wire, Asterisk und PROWL. Ausserdem nutze ich noch LinuxMCE.

    Jetzt aber zu meiner eigentlichen Frage :-) :

    Ich hab angefangen ein Plugin zu entwickeln für DENON Verstärker. Ich selbst habe ein Denon AVR-1912. Ich will aber das Plugin so flexibel machen dass man eventuell mehrer Verstärker im Haus ansprechen kann.

    Obwohl ich mehrere Plugins duchgelesen habe bleibt eine grundsätzliche Frage. Ich hab nämlich beides gesehen. Was entspricht eher der Logik / Prinzip des SH Systems ?

    1. In plugins.conf mehrere Einträge zu erstellen, eins pro Gerät ?
    Code:
    [denon1]
        class_name = Denon
        class_path = plugins.denon
        host = xxx.xxx.xxx.xxx
    [denon2]
        class_name = Denon
        class_path = plugins.denon
        host = xxx.xxx.xxx.xxx
    2. Einen einzigen Eintrag im plugins.conf ohne host, und dann ungefähr sowas in der items.conf

    Code:
    [EG]
        [[Stube]]
            [[[Denon1]]]
            ip=192.168.80.138
            [[[[Power]]]]
                type = bool
                visu_acl = rw
                denon_send = power
            [[[Denon1]]]
            ip=192.168.80.138
            [[[[Power]]]]
                type = bool
                visu_acl = rw
                denon_send = power
    Im ersten Fall würde das Plugin mehrere male gestartet werden, was mir nicht sehr sauber erscheint. Beim zweiten Fall wüsste ich nicht wie ich mit der lib.connection mehrere Verbindungen verwalten kann ....

    Ein kleiner Wegweiser wäre cool :-)

    MfG,

    Serge
Lädt...
X