Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin Fragen

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

    [wiregate] Plugin Fragen

    Hallo Zusammen,
    ich verfolge seit 3 Monaten dieses tolle Forum und bin begeistert von dem Support den hier diverse User geben.

    Seit knapp vier Wochen bewohnen wir nun unseren Neubau. Den Bus habe ich dank eines Freundes selbständig in Betrieb nehmen können. Ebenfalls das Wiregate ist bereits installiert und liest fleißig die ersten Sensoren.

    Ich hatte damals ein Anfrage bzgl. Taupunkt Temperatur gestellt, der gute Makki hat direkt mit Plugin beantwortete.

    Nun ein paar Newbie Fragen zum Thema Taupunk und prowl:

    1. Kann es sein, dass nach mehrmaliger "Speichern" eines Plugins das Wiregate abstürzt? -> Bsp. Taupunkt
    2010-12-17 20:14:04.677,Taupunkt,,2.1s,Can't take log of 0 at (eval 50) line 57, <FILE> line 316.
    2. Kann es sein, dass nach einer gewissen Zeit ein funktionsfähiges Perl Skript (prowl) zum Absturz der Perl Umgebung führt, sodass kein Skript mehr ausgeführt wird?

    3. Wie kann ich das Taupunktskript umbauen, dass es eine Liste von Sensoren einliest und die Taupunkte berechnet?

    4. Wie erweitere ich das "prowl" Plugin auf:
    a) mehrere Empfänger -> prowl APIs
    b) Versenden einer Nachricht anhand des Inhalts eines Telegrams?
    Derzeit funktioniert das prowl plugin ja, einfach auf die Aktivität eines Gruppenadresse. Der Inhalt ($00 oder $01) wird nicht interpretiert.
    bei $00 = Fenster geöffnet
    bei $01 = Fenster geschlossen
    c) Wie kann ich Umlaute Übergeben?
    Angehängte Dateien

    #2
    Viele Fragen zu später Stunde
    Schnelldurchlauf

    1) eigentlich nicht, das ist auch kein "Absturz" sondern eine Fehlermeldung.
    "Can't take log of 0 at (eval 50) line 57" will uns sagen: "my $v = log($DD/6.1078)/log(10);" (Zeile 57 des Plugins): geht nicht.
    keinen Logarithmus von 0 sollst du machen, sagt Meister Yoda.
    -> Ergo die Luftfeuchte = 0 (oder kann nicht gelesen werden)
    Ich vermute die Luftfeuchte kommt vom WireGate und wird nicht zyklisch gesendet, das ist ein bekanntes "Designproblem": Man kann keine lokalen Werte direkt aus Plugins lesen.
    -> Zyklisch senden lassen, dann kommt es aus dem Cache (im Plugin steht 1h als maximales Alter)

    In einer idealen Welt fängt das Plugin das ab und sagt: "Luftfeuchte 0 -> Mondlandung erfolgreich" im Log, das Ergebniss ist aber dasselbe: es tut nichts, sieht nur besser dabei aus

    2) Könnte sein, wenn ein Plugin 5x nacheinander mehr als 10s läuft, wird es bis zum nächsten Speichern/Restart deaktiviert, weil das alles blockiert - um sicherzustellen das der Rest weiterläuft. Das könnte hier der Fall sein (ich nutze das Growl selber nicht mangels Endgerät). Dann betrifft es aber nur dieses Pluin, zu erkennen an der roten "5 timeouts" im Webif. Bzw. auch dem Plugin-Log.
    Da muss man suchen gehen, möglichst den Timeout des HTTP-POST unter 10s zu drehen, damit das nicht passiert, aber nicht mehr heute

    3) Ein Array an Sensoradressen und ein "foreach" sollte es mit vier Zeilen mehr tun.
    Einfacher: das Plugin mehrfach mit unterschiedlichen Namen verwenden.

    4a) dito: ein Array an API-keys und ein foreach. Oder Plugin einfach mehrfach verwenden.

    b) Richtig, das ist bei 15-minuten-Qucikhacks so
    Ändern (vollständig ungetestet!)
    Code:
    if (%msg) { # telegramm vom KNX
      if ($msg{'apci'} eq "A_GroupValue_Write" and $prowl_ga{$msg{'dst'}}) {
            return sendProwl($prowl_ga{$msg{'dst'}});
      }
    in
    Code:
    if (%msg) { # telegramm vom KNX
      if ($msg{'apci'} eq "A_GroupValue_Write" and $prowl_ga{$msg{'dst'}}) {
            $prowl_ga{$msg{'dst'}} = "0;Event;Wert= . $msg{'data'};Application"; # oder $msg{'value'} falls importiert
            return sendProwl($prowl_ga{$msg{'dst'}});
      }
    Was jetzt allerdings dem Prinzip widerspricht, Definitionen&Code zu trennen, das kann man erheblich schöner machen nur mangels Testmöglichkeit...


    c) Umlaute sowie alles >ASCII 7bit gehört IMHO generell verboten, das löst 30% der IT-Probleme auf einen Schlag
    Scherz beiseite: vermutlich irgendeine encoding-Sache, das kann der Plugin-Editor, ein anderer Editor, das LWP-Modul, ein falscher Parameter - will sagen alles sein: da muss man die Kette Schrittweise durchgehen, was ohne Endgerät ganz schwierig ist.


    -> Suche einen Growl-Paten, das kann man schon soweit bringen das es 100% tut aber für normale Plattformen gibts das ja leider nicht

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

    Kommentar

    Lädt...
    X