Ankündigung

Einklappen
Keine Ankündigung bisher.

Erstmalige Inbetriebnahme Wiregate, erstes Plugin

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

    [wiregate] Erstmalige Inbetriebnahme Wiregate, erstes Plugin

    Gestern Abend habe ich mein Wiregate in Betrieb genommen. Ich möchte hier kurz über meine Erfahrungen berichten, vielleicht hilft es dem einen oder anderen Neuling. Vorab: Die mitgelieferten Bedienungshinweise sind klar, für Anfänger bestehen bloss kleine Klippen, die es zu meistern gilt.
    Erfolgserlebnisse sind für mich wichtig, aus diesem Grund habe ich auch ein kleines Plugin erstellt (besser gesagt: zusammenkopiert), das auf meiner kleinen KNX-Testanlage abhängig vom Temperaturwert eine Leuchte steuert.

    Meine Ausgangslage:
    EDV-Netzwerk, bestehend aus
    • einem PC,
    • einem Router mit DHCP-Server.

    KNX-Minimal-Installation, bestehend aus
    • einer Spannungsversorgung,
    • einem Schaltaktor, an dem auf einem Schaltkanal eine Leuchte angeschlossen ist,
    • einer USB-Schnittstelle, über die die Verbindung zum PC erfolgt,
    • ETS 4.

    Wiregate-Minimal-Installation, bestehend aus
    • Wiregate Multifunktionsgateway,
    • Busmaster USB,
    • 1-Wire Hülsenfühler / Kabeltermperaturfühler,
    • TP-UART-Schnittstelle.



    Erste Schritte
    1. Sich über die rasche und ordentlich verpackte Lieferung freuen.
    2. Mitgelieferete Kurzanleitung ( http://www.wiregate.de/download/WireGate_Quickstart.pdf ) konsultieren
    3. Die in der Kurzanleitung (S. 5) beschriebenen Inbetriebnahme-Massnahmen befolgen, nämlich
    a. Wiregate mit Netzwerkkabel mit Router verbinden;
    b. TP-UART-Schnittstelle an Wiregate anschliessen und mit einem KNX-Kabel an KNX-Anlage verbinden;
    c. Busmaster (noch ohne eingestecktes Busmasterkabel) an Wiregate anschliessen (wird neben der TP-UART-Schnittstelle etwas eng, besser wäre wahrscheinlich die Verwendung eines USB-Verlängerungskabels oder eines USB-Hubs).
    d. Anschliessen der Stromversorgung, zuerst Stecknetzteil am Wiregate einstecken, erst dann am Stromnetz (s. a. https://knx-user-forum.de/wiregate/1...anstecken.html )
    e. Warten bis das Gerät durch fünf Beeptöne die Inbetriebnahme signalisiert (dauerte bei mir auch beim ersten Mal nur kurze Zeit, obwohl in der Anleitung von für die erstmalige Konfiguration des VPN-Schlüssel eine Dauer von bis zu 45 Minuten in Aussicht gestellt wird).


    Grundeinstellungen vornehmen

    1. Auf dem PC den Web-Browser starten, dort http://wiregateXXX:10000 eingeben, wobei XXX durch die Gerätenummer zu ersetzen ist. Diese wird auf dem mitgelieferten Produktionszertifikat (und dem Etikett an der Geräteunterseite) als Hostname angegeben; sollte die Verbindungserstellung über diese Webadresse nicht möglich sein, liegt wahrscheinlich ein Problem mit der IP-Konfiguration vor; Ziff. 2.4.1 der Kurzanleitung beschreibt Massnahmen, die angewendet werden können, um die IP-Adresse von Wiregate zu ermitteln.
    2. Im Web-Browser Anmeldebildschirm ausfüllen (Benutzername: "user", Passwort gemäss Produktionszertifikat).
    3. Es erscheint die Startseite der Wiregate-Weboberfläche; dort können die Grundeinstellungen vorgenommen werden (ACHTUNG: Die hier beschriebenen Einstellungen hängen von der eigenen Ausgangslage ab, siehe oben).
    a. "Globale Einstellung": hier sind vorerst keine Anpassungen erforderlich.
    b. "LAN / Netzwerkeinstellungen": auch hier sind zunächst keine Anpassungen erforderlich (die vom DHCP-Server vergebene IP-Adresse ist hier ersichtlich).
    c. "EIB-KNX Buszugriff": Hier folgende Einstellungen vornehmen (s. a. https://knx-user-forum.de/135684-post23.html und https://knx-user-forum.de/149078-post11.html )
    i. Unter "Für die Konfiguration des EIB-Zugriffs (Client):"
    --"Schnittstellenart / Verbindungstyp zum EIB": TPUART
    --"Auswahl serielle Schnittstelle": ttyS0(Com1) (falls das Web-Formular hier keine Eingabe zulässt, weil das Feld deaktiviert ist, im Feld "Schnittstellenart" eine Änderung vornehmen, dies führte bei mir zu einer Aktivierung des Feldes "Auswahl der seriellen Schnittstelle")
    --"EIB-Adresse der lokalen Schnittstelle": 1.1.254 (wird vorgeschlagen, selbstverständlich kann hier eine andere auf die eigene KNX-Anlage zugeschnittene Adresse eingetragen werden)
    Die Einstellungen speichern

    ii. Unter "Für die Erweiterte Konfigurationsoptionen (eibd Server)":
    Alle Optionen auf "Ja" stellen und diese Einstellungen speichern.
    4. In der ETS sind vorerst keine Einstellungen vorzunehmen; wenn ich in der ETS die physikalische Adresse des Wiregates eingebe (1.1.254), wird das Gerät als nicht existierend ausgewiesen. Weshalb dies so ist, kann ich nicht nachvollziehen, es stellt aber in meiner Installation kein Problem dar, der KNX-Zugriff meines Wiregates arbeitet korrekt.


    Temperaturfühler anschliessen
    1. Sofern man den Anschluss nicht über Patchfeld oder einen Modularadapter macht: An einem Ende des mit dem Busmasters mitgelieferten Kabels den RJ-12 Stecker abschneiden.
    2. Temperatursensor anschliessen (mit "normalen" Anschlussklemmen geht es nicht, s. https://knx-user-forum.de/wiregate/1...spacken.html#2 , Lösungsweg bei https://knx-user-forum.de/wiregate/1...packen.html#4; ich habe die Drähte mit einander verdrillt und die Verbindung mit Isolierband abgedeckt)
    a. blaue (GND) und schwarze (VDD) Ader des Temperatursensors an gelber (GND) Ader des Busmasters
    b. weisse (DATA) Ader des Temperatursensors an grüner (DATA) Ader des Busmasters

    (s. Informationen über den 1-Wire-Bus, Einsatzbereich, Nutzen, Installation )
    3. Busmasterkabel in Busmaster einstecken
    4. Auf der Wiregate-Startseite Sensoren/Werte konfigurieren wählen
    5. Der soeben angeschlossene Temperatursensor erscheint in der entsprechenden Liste; Eingaben vornehmen:
    a. Name vergeben (bspw. "Test-Sensor1")
    b. EIB GA Temp vergeben (bspw. "14/4/4")
    c. Einstellungen speichern
    6. In der ETS
    a. Die soeben vergebene Gruppenadresse (14/4/4) erstellen.
    b. Busmonitor starten.
    c. Sich am Erfolgserlebnis, dass der Temperaturwert des Sensors im Busmonitor angezeigt wird, freuen.
    Einfachstes Plugin erstellen, um eine Leuchte abhängig vom Temperaturwert zu steuern
    Vorbemerkung:

    1. Auf der Wiregate-Startseite" Plugins" wählen
    2. In der Eingabemaske
    a. dem Plugin einen Namen geben (bspw."Test")
    b. Code (siehe unten) eingeben, die beiden GA und den Sollwert individuell anpassen
    c. Speichern
    3. Warten bis der Sollwert erreicht wird, resp. der Temperaturwert an KNX übergeben wird (siehe Busmonitor), sich am Erfolgserlebnis freuen.


    Zusammengefasst: Es macht Spass, besten Dank dem Wiregate-Team.
    Ich wünsche allen ein schönes Wochenende.
    Diego



    Code:
    # Demo-Plugin Licht schalten abhängig von Temperatur
    # V1.0 2011-03-26
    
    ### Definitionen 
    ### Hier werden die Werte/Gruppenadressen definiert
    my $temp1_ga = "14/4/4";   GA des Temperatursensors
    my $leuchte1_ga = "1/0/1"; GA der zu schaltenden Leuchte
    my $sollwert = 28.5;  
    ### Ende Definitionen
    # Eigenen Aufruf-Zyklus auf 1T setzen
    $plugin_info{$plugname.'_cycle'} = 86400; 
    # Zyklischer Aufruf nach restart und alle 86400 sek., dient dem anmelden an die Gruppenadresse, einmalig (0) würde in diesem Fall auch genügen
    
    if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $temp1_ga) {
    # verfügbare Daten in %msg:
    # $msg{'repeated'} 0/1
    # $msg{'sequence'} 0-xxx
    # $msg{'buf'} Rohdaten LPDU 
    # $msg{'src'} Quelladresse 
    # $msg{'tpdu_type'} T_DATA_XXX_REQ
    # $msg{'data'} rohe Telegrammdaten
    # $msg{'rcount'} Routing-Zähler
    # $msg{'apci'} A_GroupValue_Write,A_GroupValue_Read,A_GroupValue_Response (u.v.m)
    # $msg{'class'} low/alarm/high/system
    # $msg{'dst'} Zieladresse x/y/z
    # $msg{'datalen'} Datenlänge
    # $msg{'value'} Dekodierter Klartext-Wert (nur falls ESF importiert!)
    
    # $msg{'..'} ist nur mit Telegrammdaten gefüllt, wenn der Aufruf durch ein angemeldetes (plugin_subscribe) Telegramm erfolgte.
    # $msg{'apci'} eq "A_GroupValue_Write" stellt sicher, das es nur bei einem Schreibtelegramm ausgeführt wird (nicht _Read oder _Response)
    # $msg{'dst'} eq $temp1_ga -> nur bei dieser GA - falls z.B. mehrere GA's subscribed wurden kann man so unterscheiden
         if (!defined $msg{'value'}) { 
            # Wert muss dekodiert werden
            $msg{'value'} = decode_dpt9($msg{'data'}); 
         } 
       if ($msg{'value'} < $sollwert) {
          # prüft ob Sollwert erreicht wurde
          knx_write($leuchte1_ga,1,1); # schreibe 1 als DPT 1 auf GA, wenn Sollwert nicht erreicht
       } else { # zyklischer Aufruf
           knx_write($leuchte1_ga,0,1); # schreibe 0 als DPT 1 auf GA, wenn Sollwert erreicht
        }     
    } else { # zyklischer Aufruf
       # Plugin an Gruppenadresse "anmelden", hierdurch wird das Plugin im folgenden bei jedem eintreffen eines Telegramms auf die GA aufgerufen und der obere Teil dieser if-Schleife durchlaufen
       $plugin_subscribe{$temp1_ga}{$plugname} = 1;
    }
    
    return;

    #2
    Multisensor (inkl. Umgebungslichtsensor) parasitär anschliessen

    Mein Vorgehen beim Anschluss des Multisensors:
    1. Zunächst den Umgebungslichtsensor anschliessen:
      1. (Allenfalls muss diese Fotodiode zuvor an zwei Litzen angelötet werden, damit sie am gewünschten Ort platziert werden kann; falls gewünscht, kann sie zudem durch Bohren und Ankleben in der Zentralplatte eingebaut werden.)
      2. Der Anschluss erfolgt an der Leiterplattenschraubklemmen, die sich neben der Etikette befindet und mit "SFH203P" (d.h. nicht mit "1-Wire") beschriftet ist; dabei ist der kürzere Draht (Kathode) der Fotodiode in dem mit "5V" bezeichneten Eingang der Klemme, der längere (Anode) im mit "S" bezeichneten Eingang anzuschliessen (ausführliche Anleitung s. https://knx-user-forum.de/102321-post38.html ).

    2. Dann den Sensor am Bus anschliessen; für den (empfohlenen) parasitären Betrieb, d.h. ohne zusätzliche Spannungsversorgung, reicht es, an der Leiterplattenschraubklemmen, die mit "1-Wire" beschriftet ist, in den beiden Anschlüssen "GND" und "DATA" je eine Litze anzuschliessen und diese mit den entsprechen Adern des Busmaster-Kabels, resp. des 1-Wire-Busses zu verbinden; (vorsichtige Menschen trennen wahrscheinlich für die Dauer dieser Operation das Busmaster-Kabel vom Busmaster)
    3. Im Webinterface (unter "Sensoren/Werte konfigurieren") erscheint der Multisensor sowohl in der Liste der Temperatursensoren als auch in der Liste der Multisensoren; die Einstellungen müssen nur in der Liste der Multisensoren gemacht werden.
      (Nicht nachvollziehen kann ich, weshalb bei mir für den gleichen Sensor in der Liste der Temperatursensoren und der Multisensoren) je ein unterschiedlicher Temperaturwert angezeigt wird.)
      Das Erfassen der Einstellungen erfolgt in zwei Schritten:
      1. Name vergeben (bspw. "Test-Sensor1");
      2. "EIB GA Temp" und "EIB GA Luftfeuchte" vergeben (bspw. "14/4/5" und "14/4/6");
      3. Haken setzen bei "TH->THS" (damit wird – nach dem Abspeichern - der Umgebungslichtsensor kofigurierbar);
      4. Einstellungen speichern.
      5. Nun auch "EIB GA Licht" vergeben (bspw. "14/4/7").
      6. Einstellungen erneut speichern.

    4. In der ETS
      1. Die soeben vergebenen Gruppenadressen (14/4/5, 14/4/6, 14/4/7) erstellen.
      2. Busmonitor starten und überprüfen, ob die Werte von WG gesendet werden.

    Kommentar


      #3
      Plugin Code

      Bei der nachträglichen Kommentierung des Plugincodes ist mir leider ein Fehler unterlaufen: In den Zeilen 6 und 7 fehlt das Kommentarzeichen ("#"); wird der Code 1 zu 1 kopiert, entsteht eine Fehlermeldung. Korrekt wäre:
      Code:
      my $temp1_ga = "14/4/4";   #GA des Temperatursensors
      my $leuchte1_ga = "1/0/1"; #GA der zu schaltenden Leuchte

      Kommentar


        #4
        Wow Diego,

        wieder ein absolut hervorragender Beitrag! Absolut hilfreich für jeden Neuling.

        Zu deiner Frage:

        Zitat von Fechter65 Beitrag anzeigen
        (Nicht nachvollziehen kann ich, weshalb bei mir für den gleichen Sensor in der Liste der Temperatursensoren und der Multisensoren) je ein unterschiedlicher Temperaturwert angezeigt wird.)


        Auf dem Multifunktionssensor befinden sich tatsächlich ZWEI Temperatursensoren:

        1. Der DS18B20 im TO-92 Gehäuse mit drei Anschlüssen, mit großem Abstand zur Platine eingelötet um den Kopf möglichst weit vorne im Berker Sensoreinsatz zu haben.
        2. Im DS2438, das ist der 8 polige SMD-IC ist ebenfalls ein Temperatursensorelement mit enthalten.

        Der Grund, warum wir nun den DS18B20 noch verbaut haben ist dessen deutlich höhere Genauigkeit gegenüber dem im DS2438 zusätzlich eingebauten Temperatursensor.

        Wir haben uns entschieden, den zweiten Sensor nicht "weg zu filtern" in der Anzeige, darum sieht man beide. Wegen der unterschiedlichen Genauigkeit und Messposition unterscheiden sich die Messwerte.

        Eine Unterscheidung kann anhand der Seriennummer vorgenommen werden, die ersten Stellen sind hierbei der Family-Code:

        1. Code beginnt mit '28' für den DS18B20 (also den "richtigen" Temperatursensor)
        2. Code beginnt mit '26' für den DS2438 (Auswerte-IC genutzt für Luftfeuchte und Umgebungslicht).


        Ich hoffe ich konnte damit helfen. Und bitte weiter so, Deine Beiträge sind super!


        LG

        Stefan

        Kommentar


          #5
          Bilder sprechen mehr als 1000 Worte

          In der Zwischenzeit habe ich mir WAGO-Verbindungsklemmen (s. Wago Kontakttechnik | Produkte - Verbindungsklemme 222 mit Hebeltechnik ) beschafft; damit fällt der Anschluss der Sensoren viel einfacher. Gemäss den Spezifikationen sind sie für Drähte ab 0.8mm geeignet; aus diesem Grund habe ich die Adern aus dem Busmasterkabel jeweils mit dem Draht eines Sensor verdrillt und diese gemeinsam in eine Klemmstelle eigefügt. Ich hoffe, diese Lösung ist konform mit den Vorstellungen der mitlesenden Fachleute.

          Jetzt kann ich auch ein Bild einstellen, die ursprüngliche Lösung mit dem Isolierband durfte man nicht zeigen.
          Angehängte Dateien

          Kommentar


            #6
            Bin kein Fachmann und die Lösung zwei Adern so zu verdrillen, dass die die passende Dicke erreichen, findet man bei meinen Bastel-Aufbauten auch - aber da kann ich mir nicht vorstellen, dass das auch nur irgendwie konform zu irgendwas ist.

            D.h. wenn's vom Basteln weg und hin zu einer sauberen Installation gehen soll, dann solltest Du per Lötkolben und Schrumpfschlauch dass dünne Käbelchen auf einen vernünftigen Querschnitt bringen. Denn dann per Wago 222 an die weiteren Kabel anschließen.
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #7
              Hi Diego,

              die Wago-Klemmen sind für einen Querschnitt ab 0.08mm² ausgelegt.
              (Das habe ich aber auch erst recht spät mal durch Zufall auf der Packung gelesen ).
              Deswegen solltest du auch keine Probleme haben, die feinen Drähte direkt zu klemmen.

              Viele Grüße
              Christian
              Viele Grüße
              Christian

              Kommentar


                #8
                Hallo Diego,

                danke für dieses Tutorial. Ich habe es gerade 1:1 nachgebaut. Besser gesagt, ich hatte mein Testbrett schon fertig und wollte jetzt ab einer bestimmten Temperatur eine Lampe schalten. Mir fehlte jedoch das Plugin.

                Bei mir geht jetzt ab 28 Grad ein Licht auf bzw. an ;-)

                Danke für diese sehr ausführliche Beschreibung. Hätte ich es eher gefunden, wäre die eine oder andere Frage ohne langes Suchen beantwortet gewesen.

                Ich hätte jedoch noch eine Frage:

                $plugin_info{$plugname.'_cycle'} = 86400;
                Dient ja nur dazu die GA mit dem PlugIn zu verbinden. Dies hat ja nichts mit dem Sende-Zyklus des Fühlers zu tun. In der WebGUI habe ich für den Sensor einen Sendezyklus von 15sek eingetragen. Anschließend mit dem Feuerzeug den Hülsenfühler auf 40 Grad erwärmt und mich gewundert das nichts kommt. Habe rausgefunden, dass er genau alle 74s den Wert sendet. Ich kann weder in Deinem Skript noch unter den globalen Einstellungen oder Sensor-Einstellung diese Zeitangaben finden. Mein 15s als Sendezyklus beim Hülsenfühler ignoriert er auch.
                Weiß jemand wie ich die Zeit einstellen kann?

                my $temp1_ga = "0/0/6";
                Diese GA muss ich ja beim Temperatursensoren als Ziel eintragen. In der ETS habe ich diese erstellt, aber ohne Objekte.
                Im Skript steht ja my $leuchte1_ga = "0/0/2"; als Ziel GA. Hier schalte ich die Lampe. Wozu brauche ich die erste überhaupt?

                Ich gehe von ca. 10 Hülsenfühler im gesamten Haus aus. Da ich im Skript nur die GA Adressen ändern möchte würde ich gerne wissen, ob ich den rest des Skriptes importieren kann. In PHP würde ich einen Body erstellen den ich in jedem Skript importiere. Geht das auch in Perl?
                Denn wenn ich mal SOLL-Temperatur anpassen möchte müsste ich ja sonst 10 Skripte anpassen......"uncool" würde der nicht-Bausparer mit dem Mofa sagen.

                EDIT: Noch was vergessen:
                # $msg{'value'} Dekodierter Klartext-Wert (nur falls ESF importiert!)
                ESF ist - wenn ich das im Forum richtig verstanden habe - der Export der GAs aus ETS. Ist das richtig?
                Wie importiere ich die? Und welchen Mehrwert hat das, außer dass ich mir ein
                decode_dpt9($msg{'data'} erspare?


                Danke und Gruss
                Chris

                Kommentar


                  #9
                  Zitat von ChrisMS Beitrag anzeigen
                  $plugin_info{$plugname.'_cycle'} = 86400;
                  Dient ja nur dazu die GA mit dem PlugIn zu verbinden. Dies hat ja nichts mit dem Sende-Zyklus des Fühlers zu tun.
                  Richtig.

                  In der WebGUI habe ich für den Sensor einen Sendezyklus von 15sek eingetragen. ...
                  Der maximale Abfragezyklus ist globaler Sendezyklus/4, das ist zugegeben etwas verquer aber in der Praxis spart es dem "Profi mit dem 5-sek-Zykluswunsch" ne Menge Resourcen und Ärger - aufm Testbrett mag das was bringen, in der Realität ists einfach schmarrn alle paar sek. einen Tempsensor zu benudeln)

                  Ich gehe von ca. 10 Hülsenfühler im gesamten Haus aus. Da ich im Skript nur die GA Adressen ändern möchte würde ich gerne wissen, ob ich den rest des Skriptes importieren kann.
                  Ein Plugin machen, zwei Arrays mit den GA's, fertig.. Es gibt natürlich auch hundert andere Wege nach Rom..

                  ESF ist - wenn ich das im Forum richtig verstanden habe - der Export der GAs aus ETS. Ist das richtig?
                  Ja aber nicht ESF sondern das CSV von meinem ETS-Export-Tool
                  Importieren unter EIB/KNX Buszugriff.

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

                  Kommentar


                    #10
                    Kleine Ergänzung:

                    Es empfiehlt sich (ist aber nicht zwingend erforderlich), in der ETS eine Dummy-Applikation zu installieren und dieser einerseits die physikalische Adresse des Wiregates und andererseits den Namen "Wiregate" zu geben (s.https://knx-user-forum.de/wiregate/1...enmonitor.html ); trägt man dort die vom Wiregate "bedienten" Gruppenadresee (bspw. diejenigen für die Temp.sensoren) ein, werden diese in den Filtertabellen der Linienkoppler aufgenommen.

                    Kommentar


                      #11
                      Super Anleitung für Neulinge wie mich. Ziehe heute meine Estrich Sensoren ins Haus. Ein erster funktionstest ohne knx hat schon geklappt.

                      Aber so für die Installation kann ich die Wago 222-413 sehr empfehlen. Ich hab mir da gleich mal 100 Stück besorgt. Beim Bürklin sind die günstig. Ist aber schon etwas gepfriemel 3 wagos in die Dose zu bringen.
                      Gruß
                      Charley

                      Kommentar

                      Lädt...
                      X