Ankündigung

Einklappen

ETS5 Sammelbestellung Vollversion

Infos unter: Link
Mehr anzeigen
Weniger anzeigen

Wetterstation Froggit DP1500 Gateway - Frage zur Anbindung an shNG

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

    Wetterstation Froggit DP1500 Gateway - Frage zur Anbindung an shNG

    Hallo,

    ich experimentiere mit einem Wetterstationsgateway von Froggit, dem DP1500. Damit können verschiedenen Funksensoren (bspw Bodenfeuchte) angebunden werden und die Daten im Hausnetz per WIFI zur Verfügung gestellt werden.

    Im Gateway selbst kann man einstellen, mit welchen Protokoll (Ecowitt oder Wunderground) an welche IP mit welchem Pfad und welchen Port die Daten gesendet werden sollen.

    Auf dem RPI, auf dem auch meine shNG Testinstanz läuft, kann ich die Daten aus der Shell empfangen:

    Code:
     [smarthome@SmartHomeNG ~]$ netcat -vl -p 5123
    Listening on [0.0.0.0] (family 2, port 5123)
    Connection from ESP-B4F755.fritz.box 63478 received!
    POST  HTTP/1.1
    HOST: 192.168.2.14
    Connection: Close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 458
    
    PASSKEY=B0AC90645EB4772813AAC9F98154A6B2&stationtype=GW1000A_V1.6.3&dateutc=2020-11-15+12:12:44&tempinf=67.1&humidityin=58&baromrelin=28.517&baromabsin=28.517&tempf=54.5&humidity=73&winddir=149&windspeedmph=0.00&windgustmph=0.00&maxdailygust=2.24&solarradiation=90.65&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.000&yearlyrainin=0.000&totalrainin=0.000&wh65batt=0&freq=868M&model=GW1000_Pro^C
    Wie binde ich das Gateway am besten in shNG ein?
    Wäre das Network-Plugin und der Webservices das richtige?

    Für den Loxone gibt es auch ein Plugin. hier
    Davon gibt es auch eine generische Version in Python, mit der sich auch Kommandos an das Gateway schicken lassen.

    Wie würdet ihr vorgehen?
    Danke Euch.

    #2
    Wenn das Format der Daten immer gleich ist - network-Plugin in einen String schreiben und per trigger von einer Logik auslesen und verarbeiten lassen, würde ich vorschlagen.

    Kommentar


      #3
      Hallo,

      ich habe das Froggit DP1500 Gateway an shNG angebunden, und möchte hier kurz beschreiben wie. (Blog Artikel folgt).

      Infos zum Gateway findet man hier. Damit ist es möglich, diverse Sensoren per Funk anzubinden und die Daten im Heimnetz zur Verfügung zu stellen.
      Ich nutze das für eine Wetterstation (Wind, etc), Bodenfeuchte und Temp/Hum.

      Ich nutze das FOSHKplugin in der generischen Version. https://www.loxwiki.eu/display/LOXBE...eneric+version
      Dieses Plugin setzt die UDP Messages des Gateways im Ecowitt-Format um, und stellt ein JSON mit allen Daten zur Verfügung. Desweitern kann man über das Plugin auch Einstellungen am Gateway vornehmen.

      1. Installation des FOSHKplugin nach Anleitung von hier unter dem Stichwort "Installation" unter dem shNG Nutzer auf dem RPI
      Code:
      # create a local directory sudo mkdir /opt/FOSHKplugin # change into the created directory cd /opt/FOSHKplugin # get the current version of the plugin via wget sudo wget -N http://foshkplugin.phantasoft.de/fil...OSHKplugin.zip # unpack ZIP-File sudo unzip generic-FOSHKplugin.zip # Allow execute right for generic-FOSHKplugin-install.sh (this script) sudo chmod u+x generic-FOSHKplugin-install.sh # Run generic-FOSHKplugin-install.sh (this script) sudo ./generic-FOSHKplugin-install.sh --install
      2. Konfiguration des FOSHKplugins

      Code:
      +++ FOSHKplugin +++ change owner of *.log to smarthome:smarthome
      wrote your settings to ./foshkplugin.conf, ws: 192.168.2.108:45000 will send values every 60secs to :8080; FOSHKplugin sends UDP-datagrams to :12340
      
      +++ FOSHKplugin +++ ip address of target system to send UDP-messages to []: 127.0.0.1
      +++ FOSHKplugin +++ udp port on target system []: 8081
      +++ FOSHKplugin +++ ip address of local system [192.168.2.13]:
      +++ FOSHKplugin +++ http port on local system [8080]:
      +++ FOSHKplugin +++ ip address of weather station [192.168.2.108]:
      +++ FOSHKplugin +++ command port of weather station [45000]:
      +++ FOSHKplugin +++ message-interval of weather station [60]:
      
      +++ FOSHKplugin +++ are these settings ok? (Y/N) Y
      
      +++ FOSHKplugin +++ do you want to write settings into the config-file? (Y/N) Y
      +++ FOSHKplugin +++ configuring FOSHKplugin
      
      
      +++ FOSHKplugin +++ do you want to write settings into the weather station? (Y/N) Y
      +++ FOSHKplugin +++ configuring weather station
      
      
      +++ FOSHKplugin +++ do you want to enable and start the service? (Y/N) Y
      +++ FOSHKplugin +++ installing system-service via systemd
      der Eigentümer von 'foshkplugin.service.tmp' wurde von root:root in smarthome:smarthome geändert
      Created symlink /etc/systemd/system/multi-user.target.wants/foshkplugin.service → /etc/systemd/system/foshkplugin.service.
      
      +++ FOSHKplugin +++ change owner of log-foshkplugin.log raw-foshkplugin.log snd-foshkplugin.log to smarthome:smarthome
      der Eigentümer von 'log-foshkplugin.log' wurde von root:root in smarthome:smarthome geändert
      der Eigentümer von 'raw-foshkplugin.log' wurde von root:root in smarthome:smarthome geändert
      der Eigentümer von 'snd-foshkplugin.log' wurde von root:root in smarthome:smarthome geändert
      
      
      +++ FOSHKplugin +++ everything should be ok now, FOSHKplugin should be up and ready
       3807 ?        Rs     0:00 /usr/bin/python3 -u /opt/FOSHKplugin/foshkplugin.py
      
      +++ FOSHKplugin +++ current configuration is:
      [Config]
      LOX_IP = 127.0.0.1
      LOX_PORT = 8081
      LB_IP = 192.168.2.13
      LBU_PORT = 12340
      LBH_PORT = 8080
      LOX_TIME = False
      USE_METRIC = True
      IGNORE_EMPTY = True
      UDP_ENABLE = True
      UDP_IGNORE =
      LANGUAGE = DE
      AUTH_PWD =
      
      [Weatherstation]
      WS_IP = 192.168.2.108
      WS_PORT = 45000
      WS_INTERVAL = 60
      
      [Export]
      EVAL_VALUES = True
      ADD_ITEMS =
      OUT_TEMP =
      OUT_HUM =
      
      [Forward]
      FWD_URL =
      FWD_INTERVAL =
      FWD_IGNORE =
      FWD_TYPE =
      FWD_SID =
      FWD_STATUS = False
      
      [Forward-1]
      FWD_URL =
      FWD_INTERVAL =
      FWD_IGNORE =
      FWD_TYPE =
      FWD_SID =
      FWD_STATUS = False
      
      [CSV]
      CSV_NAME =
      CSV_FIELDS =
      CSV_INTERVAL =
      
      [Warning]
      WSDOG_WARNING = True
      WSDOG_INTERVAL = 3
      SENSOR_WARNING = False
      SENSOR_MANDATORY = wh65batt
      BATTERY_WARNING = True
      STORM_WARNING = True
      STORM_WARNDIFF = 1.75
      STORM_WARNDIFF3H = 3.75
      STORM_EXPIRE = 60
      TSTORM_WARNING = True
      TSTORM_WARNCOUNT = 1
      TSTORM_WARNDIST = 30
      TSTORM_EXPIRE = 15
      
      [Logging]
      logfile = /opt/FOSHKplugin/log-foshkplugin.log
      rawfile = /opt/FOSHKplugin/raw-foshkplugin.log
      sndfile = /opt/FOSHKplugin/snd-foshkplugin.log
      
      [Update]
      UPD_CHECK = True
      UPD_INTERVAL = 86400
      
      
      createConfig: wrote your settings to ./foshkplugin.conf, ws: 192.168.2.108:45000 will send values every 60secs to 192.168.2.13:8080; FOSHKplugin sends UDP-datagrams to 127.0.0.1:8081
      setWSConfig: <OK> enable custom mode on WS 192.168.2.108:45000; sending to 192.168.2.13:8080 in Ecowitt every 60sec: ok
      3. Erster Test, Abrufen des JSON
      Nun kann man mit http://192.168.2.13:8080/JSON im Browser das JSON bereits abrufen.
      Code:
      {"stationtype": "GW1000A_V1.6.3", "wnowtxt": "stürmisch, Regen", "yearlyrainmm": "6.91", "windgustkmh": "7.92", "maxdailygust": "24.12", "solarradiation": "75.48", "humidityin": "46", "freq": "868M", "humidity": "74", "soilbatt1": "1.5", "rainratemm": "0.0", "batt1": "0", "temp1c": "-1.1", "hourlyrainmm": "0.0", "heatindexc": "-0.2", "dateutc": "2020-11-29+11:09:17", "tempc": "1.6", "wnowlvl": "0", "soilmoisture1": "41", "dewptc": "-2.6", "uv": "0", "wh65batt": "0", "pchange1": "-0.1", "ptrend1": "0", "winddir": "186", "tempinc": "19.3", "dailyrainmm": "0.0", "model": "GW1000_Pro", "feelslikec": "1.6", "eventrainmm": "0.0", "PASSKEY": "B0AC90645EB4772813AAC9F98154A6B2", "windspeedkmh": "3.6", "totalrainmm": "6.91", "weeklyrainmm": "0.0", "windchillc": "1.6", "monthlyrainmm": "6.91", "baromrelhpa": "974.5", "humidity1": "87", "baromabshpa": "974.5"}
      4. Anbindung an shNG
      Die Anbindung erfolgt mit dem "jsonread" Plugin. Dieses wird im shNG mit der URL "http://192.168.2.13:8080/JSON?units=m?status" und der Instanz "froggit_data" konfiguriert.
      Der Rest erfolgt in dem Items. Bspw. so:
      Code:
      # froggit.yaml
      
      #JSON: {"PASSKEY": "B0AC90645EB4772813AAC9F98154A6B2", "stationtype": "GW1000A_V1.6.3", "dateutc": "2020-11-15+15:45:20", "tempinc": "19.4", "humidityin": "58", "baromrelhpa": "964.1", "baromabshpa": "964.1", "tempc": "8.9", "humidity": "81", "winddir": "156", "windspeedkmh": "0.0", "windgustkmh": "0.0", "maxdailygust": "5.41", "solarradiation": "0.00", "uv": "0", "rainratemm": "0.0", "eventrainmm": "0.0", "hourlyrainmm": "0.0", "dailyrainmm": "0.0", "weeklyrainmm": "0.0", "monthlyrainmm": "0.0", "yearlyrainmm": "0.0", "totalrainmm": "0.0", "temp1c": "20.3", "humidity1": "64", "soilmoisture1": "0", "wh65batt": "0", "batt1": "0", "soilbatt1": "1.5", "freq": "868M", "model": "GW1000_Pro", "dewptc": "5.8", "windchillc": "8.9", "feelslikec": "8.9", "heatindexc": "7.9", "ptrend1": "-1", "pchange1": "-0.8", "wnowlvl": "0", "wnowtxt": "stürmisch, Regen", "running": "1", "wswarning": "0", "sensorwarning": "0", "batterywarning": "0", "stormwarning": "0", "tswarning": "0", "updatewarning": "0", "time": "1605458737"}
      
      froggit_gateway:
          devices:
              gateway:
                  stationtype:
                      type: str
                      jsonread_filter@froggit_data: .stationtype
                  dateutc:
                      type: str
                      jsonread_filter@froggit_data: .dateutc
                  status:
                      type: bool
                      jsonread_filter@froggit_data: .running
                  freq:
                      type: str
                      jsonread_filter@froggit_data: .freq
                  model:
                      type: str
                      jsonread_filter@froggit_data: .model
                  wswarning:
                      type: bool
                      jsonread_filter@froggit_data: .wswarning
                  sensorwarning:
                      type: bool
                      jsonread_filter@froggit_data: .sensorwarning
                  batterywarning:
                      type: bool
                      jsonread_filter@froggit_data: .batterywarning
                  stormwarning:
                      type: bool
                      jsonread_filter@froggit_data: .stormwarning
                  tswarning:
                      type: bool
                      jsonread_filter@froggit_data: .tswarning
                  updatewarning:
                      type: bool
                      jsonread_filter@froggit_data: .updatewarning
                  reboot:
                      type: str
                      initial_value: "SID=FOSHKplugin,System.reboot"
                      nw_udp_send: 192.168.2.14:12340
              
              battery:
                  bodenfeuchte_1:
                      type: num
                      jsonread_filter@froggit_data: .soilbatt1
                  bodenfeuchte_2:
                      type: num
                      jsonread_filter@froggit_data: .soilbatt2
                  wetterstation_batteriewarnung:
                      type: bool
                      jsonread_filter@froggit_data: .wh65batt
                  sensor_1_batteriewarnung:
                      type: bool
                      jsonread_filter@froggit_data: .batt1
      
          bodenfeuchte:
              bodenfeuchte_1:
                  type: num
                  jsonread_filter@froggit_data: .soilmoisture1
              bodenfeuchte_2:
                  type: num
                  jsonread_filter@froggit_data: .soilmoisture2
                  
          wetterstation:
              temp:
                  type: num
                  jsonread_filter@froggit_data: .tempc
              hum:
                  type: num
                  jsonread_filter@froggit_data: .humidity
              pressure_rel:
                  type: num
                  jsonread_filter@froggit_data: .baromrelhpa
              pressure_abs:
                  type: num
                  jsonread_filter@froggit_data: .baromabshpa
              winddir:
                  type: num
                  jsonread_filter@froggit_data: .winddir
              windspeedkmh:
                  type: num
                  jsonread_filter@froggit_data: .windspeedkmh
              windgustkmh:
                  type: num
                  jsonread_filter@froggit_data: .windgustkmh
              maxdailygust:
                  type: num
                  jsonread_filter@froggit_data: .maxdailygust
              solarradiation:
                  type: num
                  jsonread_filter@froggit_data: .solarradiation
              uv:
                  type: num
                  jsonread_filter@froggit_data: .uv
              rainratemm:
                  type: num
                  jsonread_filter@froggit_data: .rainratemm
              eventrainmm:
                  type: num
                  jsonread_filter@froggit_data: .eventrainmm
              hourlyrainmm:
                  type: num
                  jsonread_filter@froggit_data: .hourlyrainmm
              dailyrainmm:
                  type: num
                  jsonread_filter@froggit_data: .dailyrainmm
              weeklyrainmm:
                  type: num
                  jsonread_filter@froggit_data: .weeklyrainmm
              monthlyrainmm:
                  type: num
                  jsonread_filter@froggit_data: .monthlyrainmm
              yearlyrainmm:
                  type: num
                  jsonread_filter@froggit_data: .yearlyrainmm
              totalrainmm:
                  type: num
                  jsonread_filter@froggit_data: .totalrainmm
              dewptc:
                  type: num
                  jsonread_filter@froggit_data: .dewptc
              windchillc:
                  type: num
                  jsonread_filter@froggit_data: .windchillc
              feelslikec:
                  type: num
                  jsonread_filter@froggit_data: .feelslikec
              heatindexc:
                  type: num
                  jsonread_filter@froggit_data: .heatindexc
              ptrend1:
                  type: num
                  jsonread_filter@froggit_data: .ptrend1
              pchange1:
                  type: num
                  jsonread_filter@froggit_data: .pchange1
              wnowlvl:
                  type: num
                  jsonread_filter@froggit_data: .wnowlvl
              wnowtxt:
                  type: str
                  jsonread_filter@froggit_data: .wnowtxt
       
          gateway:
              temp:
                  type: num
                  jsonread_filter@froggit_data: .tempinc
              hum:
                  type: num
                  jsonread_filter@froggit_data: .humidityin
              
          sensor_1:
              temp:
                  type: num
                  jsonread_filter@froggit_data: .temp1c
              hum:
                  type: num
                  jsonread_filter@froggit_data: .humidity1
      5. Neustart von shNG

      Nun sollten die Infos der Sensoren über das Gateway an shNG angebunden sein.
      Echt smart.

      Beste Grüße

      Kommentar

      Lädt...
      X