Ankündigung

Einklappen
Keine Ankündigung bisher.

Esera 1-Wire Controller

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

    Esera 1-Wire Controller

    Hallo zusammen,

    kurz was zu mir: Ich bin 32Jahre alt und gelernter Betriebselektroniker. Unser Haus ist Stand jetzt grob gesagt mit einer WAGO (als durchreiche für für Ein- und Ausgänge zum KNX), dem KNX-Bussystem und einen Gira Homeserver 3 ausgestattet.

    Bisher ging es mir immer schon auf die nerven, dass ich beim Homeserver keine Logiken beobachten konnte.
    Durch mitlesen hier im Forum bin ich nun auf Edomi gestoßen. Ich habe ein System Probeweise aufgesetzt und Lampen bekomme ich auch schon an und aus.
    Also alles noch sehr überschaubar.

    Zur Temperatur erfassung von unserer Heizungssteuerung habe ich 1-Wire-Sensoren im Einsatz.
    Diese habe ich bis jetzt über die Wago ausgelesen. Nun habe ich mir von der Fa. Esera den Controller 2 gekauft und wollte diesen eigentlich in den Homeserver einbinden. Dafür gibt es auch schon einen fertigen Baustein den man kaufen kann.

    Da ich nun auf Edomi gestoßen bin, wollte ich fragen wie ich die Ausgabe von dem Controller mit Edomi einfangen und weiterverarbeiten kann.
    Hat das vielleicht schon jemand gemacht?

    Der Link zur Artikelbeschreibung ist: https://www.esera.de/media/pdf/9b/d2...V1-18-R2-0.pdf

    Falls ich irgendwas vergessen habe oder es vielleicht schon ein Thema welches ich noch nicht gefunden habe gibt entschuldige ich mich dafür.

    Gruß Michael

    #2
    Du kannst das eventuell mit einem der ModBus LBSe machen.
    Gruß
    Michael

    Kommentar


      #3
      Hi gulp2k,

      kannst du mir das etwas genauer erklären?

      Gruß Michael

      Kommentar


        #4
        Hi

        Ich habe auch diesen Controller (resp. den kleineren)

        Ich habe es wie folgt gelöst:

        UDP-LBS und einen eigenen Baustein, welcher die Signale vom Controller verarbeitet. Wenn der gesuchte String gefunden wird (Eingang 1 bis 10) schreibt es den Wert in den definierte Ausgang (A1 - A10), sonst bei unbekannten 1Wire Adressen in den Ausgang A11.

        Ist sicher nicht die eleganteste Lösung, funktioniert aber soweit zuverlässig bei mir. Im Controller muss der Ausgang entsprechend konfiguriert werden.

        Vielleicht hilft es ja als Ansatz.

        Gruss
        Dani


        Bildschirmfoto 2017-12-21 um 21.20.37.png

        Hier den Code von meinem Baustein

        PHP-Code:
        ###[DEF]###
        [name        =String-Extract        ]

        [e#1        =String ≠[leer]                 ]
        [e#2        =Suchstring 1                ]
        [e#3        =Suchstring 2                ]
        [e#4        =Suchstring 3                ]
        [e#5        =Suchstring 4                ]
        [e#6        =Suchstring 5                ]
        [e#7        =Suchstring 6                ]
        [e#8        =Suchstring 7                ]
        [e#9        =Suchstring 8                ]
        [e#10        =Suchstring 9                ]
        [e#11        =Suchstring 10                ]

        [a#1        =Ausgang 1                        ]
        [a#2        =Ausgang 2                        ]
        [a#3        =Ausgang 3                        ]
        [a#4        =Ausgang 4                        ]
        [a#5        =Ausgang 5                        ]
        [a#6        =Ausgang 6                        ]
        [a#7        =Ausgang 7                        ]
        [a#8        =Ausgang 8                        ]
        [a#9        =Ausgang 9                        ]
        [a#10        =Ausgang 10                        ]
        [a#11        =unbekannt                        ]
        [a#12        =KAL                        ]
        [a#13        =ControllerZeit                    ]

        ###[/DEF]###


        ###[HELP]###
        Dieser Baustein trennt den String auf und vergleicht den ersten Teil mit dem Suchstring

        Verwendung fuer Daten ueber 1-Wire Controller 1 von esera
        Datenempfang ueber UDP (Vorgeschaltet)

        Datenwerte werden durch 100 dividiert (Einstellung auf 2 Kommastellen in esera config tool)

        Version 0.1 vom 17.10.2017: Initialversion
        Version 02. vom 20.10.2017: mehrere Eingänge

        Pruefen: Zahl durch 100 Teilen geht ja nicht immer, z.b. bei Kontroll-Flag!
        Pruefen: Mehrere Filter-Eingaenge um alle Telegramme in einem LBS abzutischen!

        ACHTUNG, der Aufbau ist fuer die Controller-Nummer ein (erstes Zeichen in String)
        Falls dies nicht mehr so ist, muss der Baustein angepasst werden.


        ###[/HELP]###


        ###[LBS]###

        <?
        function LB_LBSID($id) {
            if ($E=logic_getInputs($id)) {
                if (!isEmpty($E[1]['value']) && $E[1]['refresh']==1 ) {
                    $n=explode("|",$E[1]['value']);
                    $find = 0;
                    $n[1] = trim ($n[1]);
                    for ($t=1;$t<11;$t++) {
                        if ($n[0]==$E[$t+1]['value']) {
                            $find = 1;
                            if (is_numeric($n[1])) {
                                $n[1] = $n[1]/100;
                                }
                            logic_setOutput($id,$t,$n[1]);
                            } 
                        else {
                            logic_setOutput($id,$t,0);
                            }
                    }

                    if ($n[0]=='1_KAL') {
                        logic_setOutput($id,12,1);
                        $find = 1;
                        }

                    if ($n[0]=='1_EVT') {
                        logic_setOutput($id,11,$n[1]);
                        $find = 1;
                        }

                    if ($find == 0) {
                        logic_setOutput($id,11,$E[1]['value']);
                        }    
                    else {
                        logic_setOutput($id,$t,'');
                        }        

                }    
            }
        }
        ?>
        ###[/LBS]###


        ###[EXEC]###
        <?

        ?>
        ###[/EXEC]###

        Kommentar


          #5
          Zitat von Michael85 Beitrag anzeigen

          kannst du mir das etwas genauer erklären?
          Ich meine z.B. meinen LBS 19001030.
          Damit kannst du ModBus TCP auslesen/steuern.
          Soweit ich das beim überfliegen vom Esera gesehen habe spricht er ja ModBus auf Netzwerkseite.

          Gruß
          Michael

          Kommentar


            #6
            Hallo!

            ein Dankeschön für eure Antworten.

            @gulp2k: Meine Version kann leider kein Modbus. Das ist eine ander Version von dem Controller. Ich habe den Esera Controller 2.

            @danik: Vielen dank für deinen Code! Ich muss ehrlich gestehen von der Bausteinprogrammierung habe ich - Stand jetzt - keine Ahnung.
            In der Technikerschule machen wir im Moment wohl etwas C#, aber so komplexe Sachen kommen da nicht dran.

            Wenn ich das jetzt für 30 Sensoren haben möchte, dann muss ich doch nur die Ein- und Ausgänge von deinem Code erweitern oder?
            Bekommst du am Ausgang nur den Temperaturwert? Oder auch den Zeitstempel um zu prüfen ob der Wert aktuell ist?

            Gruß Michael

            Kommentar


              #7
              Zitat von Michael85 Beitrag anzeigen

              Wenn ich das jetzt für 30 Sensoren haben möchte, dann muss ich doch nur die Ein- und Ausgänge von deinem Code erweitern oder?
              Bekommst du am Ausgang nur den Temperaturwert? Oder auch den Zeitstempel um zu prüfen ob der Wert aktuell ist?
              Ja das wird gehen. Am Ausgang ist nur der Temperaturwert. Aktualität habe ich über KAL Flag und einem nachgelagerten Watch dog LBS gemacht.

              Gruss Dani

              Kommentar


                #8
                So, ich habe das jetzt mal nachgebaut. Sieht soweit auch gut aus. Allerdings "läuft" die Logik nicht. In den Bausteinen wird immer als Status "inaktiv" angezeigt.
                Die Logikseite ist auf aktiv gesetzt. Hat jemand einen kleinen Tipp warum es nicht läuft?

                Kommentar


                  #9
                  Zitat von Michael85 Beitrag anzeigen
                  So, ich habe das jetzt mal nachgebaut. Sieht soweit auch gut aus. Allerdings "läuft" die Logik nicht. In den Bausteinen wird immer als Status "inaktiv" angezeigt.
                  Die Logikseite ist auf aktiv gesetzt. Hat jemand einen kleinen Tipp warum es nicht läuft?
                  Läuft dann der UPD-Receiver und liefert Daten? Und das ganze einmal übertragen?

                  Kommentar


                    #10
                    Ich habe jetzt vom UDP-Receiver den Status-Läuft auf eine Klemme gelegt. Dieser zeigt mir den Status 1 an. Also scheint der Baustein zu laufen.
                    Über PUTTY kann ich sehen was der Controller sendet, aber in EDOMI sehe ich nix.

                    UDP.jpg
                    Hier sieht es für mich so aus als ob er eine Verbindung hat zum Controller.

                    Kommentar


                      #11
                      Hier noch die Logik,... Logik.jpg

                      Kommentar


                        #12
                        Wenn Du im UDP-Baustein den Wert DEBUG auf 1 setzt, gibt es eine eigene Log-Datei, welche relativ schnell anwächst und die erhaltenen Daten anzeigt (sofern dann etwas ankommt).

                        Ich habe hier mal die Printscreens von meinen Controller, wie ich dies eingestellt haben. Multicast geht aber nicht (Daten an mehrere Empfänger senden). Man muss (oder zumindest so klappt es bei mir) im esera config tool die Adresse/Port des Empfängers (Edomi-Server) angegeben. Die Daten werden dann nur an diese Adresse gesendet.

                        Bildschirmfoto 2017-12-26 um 22.39.51.png

                        Bildschirmfoto 2017-12-26 um 22.40.51.png

                        Kommentar


                          #13
                          Hey Danik,

                          konnte aufgrund der Arbeit noch nicht Antworten. Zwischendurch habe ich so schon mal Werte rüber bekommen. Aber ich glaube noch nicht im richtigen Format da er es nicht entschlüsseln konnte. Sprich keine Temperatur rausgegeben hat.
                          Allerdings konnte ich keine Einstellungen mehr im Controller vornehmen. Habe versucht alle Einstellungen zurück zu nehmen, allerdings bekomme ich es jetzt nicht mehr hin mit der Esera-Config-Software Werte zu ändern oder abzurufen. Auch mit Putty nicht, und egal ob per TCP oder UDP.

                          Werde Dienstag wohl nochmal bei Esera anrufen müssen.

                          Besten dank für deine Tipps.

                          Kommentar


                            #14
                            doppelt gepostet.

                            Kommentar


                              #15
                              doppelt gepostet.

                              Kommentar

                              Lädt...
                              X