Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19000191 - Elsner Wetterstation P03/3 RS485 GPS

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

    LBS19000191 - Elsner Wetterstation P03/3 RS485 GPS

    Dies ist der Diskussionsthread zu meinem LBS19000191 - Elsner Wetterstation P03/3 RS485 GPS, welcher die Anbindung der Elsner Wetterstation P03/3 RS485 GPS an EDOMI realisiert. Da die ursprüngliche Implementierung in PHP, die im Baustein 19000015 verwendet wurde, auch von mir stammt, habe ich mir erlaubt, diesen LBS Code an die Änderungen der GPS Variante dieser Wetterstation anzupassen und den Baustein als Daemon auszulegen, der dauerhaft die Daten der Wetterstation ausliest. Die Wetterstation sendet 1 mal pro Sekunde 61 Bytes an Daten und liefert folgende Werte:

    A2: Temperature in °C
    A3: Sun South in kLux
    A4: Sun West in kLux
    A5: Sun East in kLux
    A6: Twilight (1=yes=Daylight<10lux / 0 = no)
    A7: Daylight (0-999 Lux)
    A8: Wind in m/s
    A9: Rain (1 = yes / 0 = no)
    A10: Weekday (1 = Mo, 7 = Su)
    A11: Date
    A12: Time
    A13: GPS receiver working (0/1)
    A14: Azimuth
    A15: Elevation
    A16: Longitude
    A17: Longitude Direction
    A18: Latitude
    A19: Latitude Direction

    Den LBS findet ihr hier.

    Voraussetzung ist, dass die RS485 Schnittstelle der Wetterstation als IP Socket zur Verfügung steht, z.B. durch Anbindung per RS485-to-RS232 Konverter und Nutzung des Tools ser2net.

    Dieser LBS unterstützt nur die GPS Variante der RS485 Wetterstation von Elsner. Die Basic Variante sollte mit dem LBS19000015 funktionieren.

    Kommentare, Anregungen und weiteres Feedback ist jederzeit willkommen.

    Viele Grüße
    André

    17.03.2016: Update auf v0.2 - Versionshinweis im Tracelog hinzugefügt. Kleinere Korrekturen.
    Zuletzt geändert von jonofe; 17.03.2016, 21:23.

    #2
    schöne Sache und danke für den Originalcode, hoffe es war ok das ich den abgeändert habe.
    Habe die Basisversion erst seit kurzem. Funktioniert die dauernde abfrage über ser2net einwandfrei? ich habe einen externen rs485->tcp umsetzer, dieser funktioniert zwar sehr gut, aber in gewissen Konstellationen verheddert sich da anscheinend irgend was und dann bekommt man bis die Verbindung geschlossen und neu aufgebaut wird nur noch müll zurück. (bin leider zusehr Laie um zu verstehen warum das so ist)
    Deshalb habe ich auf den Daemon verzichtet. und eine abfrage alle 10 sek hat mir bis jetzt auch gereicht. In 2-3 Wochen bekomme ich noch einen anderen Umsetzer dann werd ichs nochmal mit dem Daemon versuchen.

    Christian

    Kommentar


      #3
      Klar war das okay. Dafür habe ich den ja damals veröffentlicht.

      Bei mir funktioniert das super stabil. Teilweise über mehrere Wochen ohne Probleme.
      Über noch längere Zeit kann ich kaum sagen, da ich bei meinen Weiterentwicklungen natürlich immer mal wieder neu starte.
      Allerdings ist es in den letzten 2-3 Jahren höchstens ein oder zwei mal zu Problemen gekommen.
      Man könnte natürlich noch eine Prüfung einbauen, z.B. wenn eine fehlerhafte Checksum empfangen wird, dass dann die Verbindung neu aufgebaut wird. Damit sollte sich der daemon dann selbst wieder reparieren, es sei denn die Ursache liegt bei ser2net.

      Viele Grüße
      André

      Kommentar


        #4
        na dann warte ich mal auf den 2. rs485 umsetzer (kann auch rs232 und ist eigentlich für den beamer gedacht) dann sehn wir weiter, aber wie gesagt wetterdaten reichen auch alle 10 sek ;-) (jetzt muß ich nur mal aufs dach und das ding montieren)

        Kommentar


          #5
          Die P03/3 liefert seine Daten alle 3 Sekunden. Es wundert mich jetzt, dass es bei euch alle 10s funktioniert. Müsste das nicht immer das Produkt von 3 sein ?
          Vielleicht kommen sie deshalb aus dem Tritt.

          Ich habe eine Eltako an einer Wago (baugleich zur P03/3 ohne DCF/GPS). Die liefert aber die Daten jede ! Sekunde.
          In 2 Jahren ist da nicht ein einziger Fehler aufgetreten.

          Übrigens BESTEN DANK für den Baustein !
          >>Smelly One<<
          >> BURLI <<
          Grüße Armin

          Kommentar


            #6
            das wollte ich mit basis Version sagen, hab auch die eltako, und die hat wie du schreibst mit den 10s keine Probleme. Ich sehe aber auch bei 3 Sek kein Problem, es wird ja gewartet bis das Startzeichen kommt und dann wird der nächste Datensatz abgefragt, denke Probleme gibts nur wenn man die Zeit auf unter 6 Sek setzt.

            Aber dann wirds wahrscheinlich wirklich an dem rs485 Umsetzer liegen ...

            Kommentar


              #7
              Zitat von WagoKlemme Beitrag anzeigen
              Die P03/3 liefert seine Daten alle 3 Sekunden. Es wundert mich jetzt, dass es bei euch alle 10s funktioniert. Müsste das nicht immer das Produkt von 3 sein ?
              Nein, sie liefert einmal pro Sekunde, zumindest die P03/3 RS485 GPS.
              Zitat aus dem Handbuch: (Seite 2, zweiter Absatz)

              Die Wetterstation sendet einmal pro Sekunde die aktuell erfassten Wetterdaten, Datum und Uhrzeit. Dieser Datenstrom kann mit einem Endgerät wie SPS, PC oder MC empfangen und ausgewertet werden.
              Daher habe ich auch keine Probleme damit. Und der daemon liest ja auch nicht einmal pro Sekunde, sondern kontinuierlich.
              Wenn man eine Warteschleife (z.B. sleep 3) einbaut, dann wirds beim Daemon schwierig, da die Wetterstation weiter sendet, während nur alle 3 Sekunden ausgelesen wird. Das funktioniert nicht. Dazu müsste man die Verbindung immer ab- und wieder aufbauen. Das wiederumg wird ja beim LBS19000015 gemacht. Sollte somit dort funktionieren.

              Kommentar


                #8
                Hallo André,

                danke für den Baustein. Hab den heute mit einer Elsner P03/3 RS485 GPS erfolgreich in Betrieb genommen.
                Als RS485 Wandler hab ich so einen günstigen USB Stick im Einsatz.
                $_35.JPG
                Allerdings stellt der Baustein die Verbindung nicht wieder her wenn ich Edomi neu starte.
                Erst nachdem ich den Port manuell wieder freigebe gehts wieder.
                Die Einstellungen in der ser2net.conf

                3031:raw:5:/dev/ttyUSB0:19200 NONE 1STOPBIT 8DATABITS

                Hast Du eine Idee?

                Gruß
                Klaus

                Kommentar


                  #9
                  Werde ich mir nach meinem Urlaub mal anschauen. Was genau meinst du mit "Wenn ich den Port manuell wieder freigebe"?
                  meinst du damit ser2net neustarten? Ich bin mir fast sicher, dass der LBS bei mir auch einen EDOMI Neustart überlebt hat. Es war aber ein seriell/RS485 Wandler. Inzwischen bin ich auf ein Ethernet/RS485 Wandler aus China umgestiegen. Auch hier funktioniert m.W. ein Restart problemlos.

                  Kommentar


                    #10
                    Hi André,

                    einen schönen Urlaub wünsch ich Dir.

                    Mit manuell freigeben meine ich den Port zu disconnecten. Über den Port 3000 kann man sich ja über telnet mit dem ser2net daemon verbinden und verschiedene Einstellungen vornehmen. Ich muss nach einem Neustart von Edomi also jedesmal wenn ich Änderungen einspiele den ser2net Port an dem die Wetterstation hängt disconnecten.

                    disconnect 3031

                    Erst dann kann sich der LBS wieder verbinden. Welchen Ethernet/RS485 Wandler setzt Du denn ein?

                    Hab grad nochmal den Debug Modus aktiviert und gesehen das er folgenden Fehler ins Log schreibt. Nachdem ich den Port disconnecte ist der Fehler weg.
                    2016-07-25 11:13:31 978276 EXEC 1980 P03/3-RS485-GPS-EXEC: ### ERROR ### - Invalid checksum received [v0.3.1] ERROR

                    Gruß
                    Klaus



                    Bildschirmfoto 2016-07-25 um 11.07.48.png

                    Kommentar


                      #11
                      Zitat von sunnyhd Beitrag anzeigen
                      Hi André,

                      einen schönen Urlaub wünsch ich Dir.

                      Mit manuell freigeben meine ich den Port zu disconnecten. Über den Port 3000 kann man sich ja über telnet mit dem ser2net daemon verbinden und verschiedene Einstellungen vornehmen. Ich muss nach einem Neustart von Edomi also jedesmal wenn ich Änderungen einspiele den ser2net Port an dem die Wetterstation hängt disconnecten.

                      [ATTACH=CONFIG]n969940[/ATTACH]
                      wie startest du denn ser2net? kannst du mal die Kommandozeile posten? Vielleicht liegt da der Unterschied. Ansonsten liegt es vermutlich am USB/RS485 Adapter, denn das, was du beschreibst musste ich nie machen. Neustart von edomi ging immer ohne neustart von ser2net.

                      Kommentar


                        #12
                        ser2net -d -p 3000

                        Gruß
                        Klaus

                        Kommentar


                          #13
                          Da ich jetzt auch von konventioneller Haus-Elektrik auf KNX umsteige (Installation und Verkabelung läuft), würde ich gern eine fast neue Elsner P03/3 aus Altbestand (steuerte damals über eine WS10 die Wintergarten-Markiese) recyclen.

                          Noch ein paar Grundsatzfragen:
                          1. Ethernet/RS485 Wandler:
                          welchen könnt ihr empfehlen oder tut es jeder beliebige?
                          => für 20 Euro gibts bereits den Q14870 USR-TCP232-304 Serial RS485 to TCP/IP
                          2. Anbindung Raspberry
                          Kann ich meinen Pi 3B+ über die Fritzbox an meine MDT VC-EASY.02 hängen oder benötige ich einen TPUART USB light?

                          Besten Dank im Voraus,
                          Tobias

                          Kommentar


                            #14
                            Zitat von A124Bob Beitrag anzeigen
                            für 20 Euro gibts bereits den Q14870 USR-TCP232-304 Serial RS485 to TCP/IP
                            Ich verwende den USR-TCP232-204. Funktioniert problemlos. Keine Ahnung was der Unterschied zwischen 204 und 304 ist. Vermutlich ist 304 nur das neuere Modell. Das 204 scheint auch nicht mehr verfügbar.

                            Kommentar


                              #15
                              Hallo zusammen,

                              selbst auf die Gefahr hin, dass ich an falscher Stelle dumme Fragen stelle, versuche ich mein Glück.

                              Ich würde den LBS sehr gerne nutzen, da bei uns eine Elsner Wetterstation P04/3-RS485 basic verbaut ist. Diese hat leider weder Zeit noch GPS. Daher die erste Frage: Ich vermute, dass der LBS dennoch out-of-the-box funktionieren müsste, trotz der fehlenden Bytes - ist das so, oder muss ich etwas am Quellcode ändern?

                              Weiter verwende ich einen serial 2 TCP Verbinder (https://www.usriot.com/products/modb...onverters.html) - scheinbar habe ich den Dreh aber noch nicht raus. Die Wetterstation ist damit verbunden und im Diagnosetool erhalte ich die Daten der Wetterstation und ich kann diese nach Anleitung auch in Temperatur und Co. interpretieren. Das Gerät hat eine IP-Adresse im lokalen LAN und ich kann alles wunderbar im Browser einstellen. Ich scheitere aber daran, die Daten wirklich verfügbar zu machen. Es gibt den Web-Port (80), den TCP-Socket (5372) und es gibt im RS485 Device einen eigenen TCP-Socket (26), den ich so auch im Diagnosetool sehe und ansprechen kann. Egal, welchen Port ich versuche, dabei kommt nichts rum und ich bekomme als error Wert in Edomi entweder 1 oder 2 zurück.
                              Das Kästchen kann ich entweder als TCP Server oder Client konfigurieren, das selbe auch mittels UDP. Ich würde ja von TCP Server ausgehen (LBS fragt an und erhält die Daten: Konverter = Server, LBS = Client).
                              Hat da jemand eine Idee für mich?


                              Danke und viele Grüße
                              Björn

                              Edit:
                              Hmmm, natürlich liege ich falsch. Nach einer kurzen Kontrolle des ursprünglichen Quellcodes kann ich meine erste Frage beantworten. Es werden weitere Daten erwartet und in die Checksummenberechnung geworfen. Da diese fehlen, wird ein Fehler geworfen. Ok, das ändere ich mal schnell. Mal sehen, ob es dann weiter geht.
                              Gruß Björn
                              Zuletzt geändert von Phyxx; 16.12.2019, 11:01.

                              Kommentar

                              Lädt...
                              X