Ankündigung

Einklappen
Keine Ankündigung bisher.

Szenennummer aus Präsenzmelder zur Weiterverwertung

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

    [wiregate] Szenennummer aus Präsenzmelder zur Weiterverwertung

    Hallo,

    ich habe seit ein paar Tagen ein Wiregate und lese mich gerade durch das Forum.
    Ich habe aus Codeschnipseln mein erstes Plugin geschrieben, damit steuer ich eine Pumpe temperaturabhängig.
    Jetzt meine Frage: Ich habe einen Heizungsaktor der Firma MDT und möchte dort meine Betriebszustände ( Komfort/Nacht/Standby) schalten bzw. vorgeben.
    Dies möchte ich über meinen Hager 1 Kanal Präsenzmelder machen. Ich sehe wie mein Päsenzmelder eine Szenennummer in hex ausgibt, diese entspricht meiner Szenennummer. Leider gelingt es mir nicht diese Szenennummer weiter zu verarbeiten.
    Hier ist mein Plugin. Es soll bei Anwesenheit die Komfortgruppenadresse auf 1 setzen, bei Abwesenheit die Nachtgruppenadresse.
    Ich habe den Eindruck dass die Szenennummer vom Wiregate nicht interpretiert wird, obwohl auf dem Bus vom Präsenzmelder diese Szenennummer versendet wird.
    Könnt Ihr mir helfen oder habt Ihr eine Idee?

    $plugin_info{$plugname.'Heizungskomfort'}=86400;
    my $Komfort_ga="0/1/10";
    my $Nacht_ga="0/1/11";
    my $PraesenzWz_ga="4/0/2";

    $plugin_subscribe{$PraesenzWz_ga}{$plugname}=1;
    my $PraesenzWz;
    my $time=time;
    if ($msg{'apci'} eq " A_GroupValue_Write" && $msg{'dst'} eq $PraesenzWz_ga){
    $PraesenzWz= $msg{'value'};
    $PraesenzWz= decode_dpt17($msg{'data'});
    }
    if ($PraesenzWz==32){
    $plugin_info{$plugname.'Praesenz_active'}=1;
    #$plugin_info{$plugname.'_last_start'}=$time;
    knx_write($Komfort_ga,0,1); #knx_write($Komfort_ga,1,1);
    knx_write($Nacht_ga,1,1); #knx_write($Nacht_ga,0,1);
    }
    if ($PraesenzWz==31){ #&&($time<(plugin_info{$plugname.'last_start'}+720 0))){
    knx_write($Komfort_ga,1,1); #knx_write($Komfort_ga,0,1);
    knx_write($Nacht_ga,0,1); #knx_write($Nacht_ga,1,1);
    $plugin_info{$plugname.'Praesenz_active'}=0;
    }

    return;

    #2
    Hallo nitni (name?)
    Willkommen beim WG

    Hast du schon mal den logikprozessor plugin ausprobiert?

    Da sind standartaufgaben da drinn und könnte etwa so aussehen:

    Code:
    presenz_komfort=> { trigger=>'4/0/2==32', transmit=>'1/0/10',  translate => 1, debug=>1 },
    nopresenz=> { trigger=>4/0/2==31', transmit=>'1/0/11',  translate => 1, debug=>1 },

    wichtig die GA korrekt im WG hinterleggen

    gruess markus

    Kommentar


      #3
      Hallo Markus, danke für den Hinweis mit dem Logikplugin. Muss ich mir heute mal anschauen. Wie meinst du die GA im Wiregate zu hinterlegen? Könntest du mir ein Beispiel geben? Grüße Martin

      Kommentar


        #4
        Sali martin
        Schau mal hier (nur 2 treads weiter unten)
        https://knx-user-forum.de/forum/supp...%BCr-cometvisu

        Ist zwar um CV die Rede, gilt aber auch für ga welche in plugins gebraicht werden.
        Zur info, ist dem WG der DTP der zu sendenden GA nicht bekannt, so wird nichts gesendet

        Gruess markus
        Zuletzt geändert von mmarkus; 20.10.2016, 07:25.

        Kommentar


          #5
          Das Thema "DTP" ist leider ein sehr wichtiges.

          Immer mit Zahl und Einheiten rechnen:
          In der Schule und Studium haben wir gelernt - zumindest haben sich die Mathe- und Physiklehrer darin Mühe gegeben - dass man immer mit Zahl und Einheit rechnen soll. Warum? Weil in zusammengesetzen Einheitenbezeichnungen, die mit Kilo, Mega oder Milli usw. beginnen (SI-Präfixe) oder auch bei nicht SI-Einheiten wie Zentner, Gallone, Tonne, Hektar "versteckt" sich ein Multiplikator auf die Einheit, der zu beachten ist.

          Bei Rechner-zu-Rechner Kommunikation wird die Einheit oft eingespart, mit verherenden Folgen:
          Folglich wäre es richtig, bei der Kommunikation zwischen zwei Computern nicht nur den Zahlenwert zu übertragen, sondern auch die Einheit. Leider wird das oft nicht gemacht, sondern es wird durch eine Vereinbarung ersetzt, welche Einheit ein Wert nun haben soll. Das kann auch schief gehen. Vor vielen Jahren ist eine Marssonde abgestürzt, weil die Bremsraketen nicht rechtzeitig gezündet hatten. Der Grund dafür war, dass die Komponenten Radarhöhenmesser und Bremsraketenzündung in verschiedenen Einheiten gearbeitet hatten, die eine Komponenten in Fuss, die andere in Meter. Obwohl es bei der NASA schon lange die Vorgabe gab, dass nur im metrischen System zu arbeiten ist, wurde es bei einer Komponenten anders gemacht und von vielen übersehen.

          Bei KNX steht die EInheit im Datenpunkttyp - der ist meist fest vorgegeben:
          Beim KNX wird - vermutlich um Übertragungskapazität und Rechenzeit einzusparen - ebenfalls KEINE Einheit übertragen, sondern nur ein Telegramm mit einer Nutzlast die zwischen 1 Bit und zig Byte lang ist. Wie diese Nutzlast nun formatiert ist (Binär, Integer, Float, Binäres Spezialformat) und welche Einheit anzuwenden ist, steht nicht im Telegramm!
          Bei den meisten Applikationen ist die Bitlänge des Telegrammes und der Datentyp (Superset des Datenpunkttyps) vorgegeben. Beim Verknüpfen sollte die ETS darauf achten, dass die Teilnehmer einander auch verstehen, weil nur Objekte gleichen Datentyps verknüpft werden. Die einelnen Devices beim KNX arbeiten also auf Basis einer "Vorab-Vereinbarung" - in der Applikation festgelegt - miteinander.

          Wie machen das nun die Universalserver?
          Solche "Universalserver" wie der WireGate Server und auch der Timberwolf Server kennen die Datenpunkttypen zunächst nicht. Es kommen Telegramme an, deren Inhalt zunächst nicht interpretiert werden kann. Die Informationen hat nur die ETS im Projekt (und programmiert diese auch nicht bei den Objekten der Devices). Daher kann (beim Timberwolf Server: muss) man das Projekt einlesen. Bzw. entsprechend manuell Hand anlegen. Die ETS hat an die Universalserver nicht gedacht, bei der im Timberwolf Server möglichen 1000 Objekte wird nur die Bitlänge programmiert. Sehr enervierend.

          Darum: Damit Server wie WireGate / Timberwolf die Telegramme auch interpretieren können, müssen die DTP zu den GA angegeben werden. Um das zu vereinfachen, kann man das Projekt einlesen.

          Alles klar?

          lg

          Stefan

          Kommentar


            #6
            Hallo Markus und Stefan,

            vielen Dank für Eure ausführlichen Beiträge.
            Ich habe verstanden was Ihr mir klar machen wollt, ist sehr gut erklärt.
            Leider funkionierts immer noch nicht bei mir. Ich habe oben in meinem Beispiel plugin den DTP 17 meiner PräsenzGA angegeben. Das müsste doch dann eigentlich klar sein und interpretierbar sein. Ich sehe im Busverkehr wie der Präsenzmelder die GA sendet, aber es wird bei der Verarbeitung keine Nachricht gesendet.
            Mach ich noch was falsch?

            Kommentar


              #7
              Hallo Martin,
              Hast du die DTP nur im Plugin oder auch unter dem Menü “GA bearbeiten“ eingetragen?

              Welche Version hat denn dein WG? 1.4.0 ?

              Grüße
              Stefan

              Kommentar


                #8
                Die GA`s 0/1/10 und 0/1/11 sind auch Definiert? Das definieren der sendenden GA`s ist noch wichtiger als das der empfangenden.

                Kommentar


                  #9
                  ja habe ich gemach. Ich habe im Wiregate " zu bearbeitende GA" alle beteiligten GA eingetragen und definiert.
                  Auch im Plugin ( siehe oben) ist DTP 17 und 1 definiert. Funktionirt aber trotzdem nicht.
                  Meine Softwareversion ist die 1.2

                  Kommentar


                    #10
                    Hallo Martin,

                    Dann mache doch bitte nun alle Updates bis 1.4.0. Denn ich meine vorher wurden nur DTP bis 15 vom WG unterstützt.
                    Grüße
                    Stefan

                    Es wurden nur nur dir 0 bis 15 in der HG der GA vorher unterstützt.
                    Zuletzt geändert von Hammer69; 21.10.2016, 16:24. Grund: Fehlinformation

                    Kommentar


                      #11
                      Zitat von Hammer69 Beitrag anzeigen
                      vorher wurden nur DTP bis 15 vom WG unterstützt.
                      Nein das waren glaub nur die GA Hauptgruppe über 15 welche nicht unterstützt wurden

                      Kommentar


                        #12
                        Ja stimmt, entschuldigt .
                        da habe ich noch gerade getäuscht.

                        Kommentar


                          #13
                          Ok. Habe ich jetzt gemacht. WG hat jetzt 1.4.0
                          Präsenz_GA sendet, wie immer.....passiert aber nichts. Es wird nicht auf meine GA geschrieben.
                          Für was ist die conf Datei im Plugin, muss ich dort noch irgendwas hinterlegen?
                          Habt Ihr sonst noch Ideen welche ich testen kann?

                          Kommentar


                            #14
                            Ich habe mal dein Plugin 1:1 in mein WG Kopiert, GA angelegt und getestet, funktioniert auch bei mir nicht! Wenn ich in der Logdatei schaue hats da ein Erroreintrag gleich beim speichern des plugins.
                            Code:
                             
                             2016-10-21 22:37:21.948,test szene,timeout_err reset to 0, last saved = 1477082240 last =  last called =
                            Ich vermute daher dass im Code selber irgend ein Fehler steckt. Dafür reichen aber meine perlkentnisse nicht aus.
                            Wie gesagt, probiere das ganze im Logikeditor aus, da hast du nach debuginfos im Log, welche Fehlersuche viel einfacher machen

                            Kommentar

                            Lädt...
                            X