Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenempfang Froggit DP1500

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

    Datenempfang Froggit DP1500

    Hallo,

    ich habe es schon in dem Thread zum Froggit LBS geschrieben. Allerdings wollte ich den Thread nicht weiter missbrauchen da er für die Wetterstation und nicht den USB-Dongle ist.

    Mit dem DP1500 kann man Daten direkt zum eigenen Server senden.

    Mit dem Raspberry habe ich folgendes Empfangen:

    Code:
    pi@raspberrypi:~ $ sudo nc -lv 8080 Listening on [0.0.0.0] (family 2, port 8080) Connection from ESP-A02372.fritz.box 7425 received! POST /data/report/ HTTP/1.1 HOST: 192.168.1.51 Connection: Close Content-Type: application/x-www-form-urlencoded Content-Length: 185 PASSKEY=2257B0199F05CAC28CBE1BFF5004292A&stationty pe=GW1000A_V1.5.7&dateutc=2020-04-17+20:19:30&tempinf=70.7&humidityin=43&baromrelin= 29.949&baromabsin=29.949&freq=868M&model=GW1000_Pr o
    Jetzt habe ich Versucht das gleiche auch in Edomi zu empfangen. Dafür habe ich dann den webhook LBS eingespielt. Als Port habe ich einfach mal '5123' genommen.

    Der Kopf in der webhook PHP sieht so aus:

    Code:
    $targets = array(
    array(
    'lbsid' => '2835',
    'ip' => '192.168.1.34',
    'protocol' => 'tcp',
    'port' => 5123,
    'status' => true
    )
    );
    Die '192.168.1.34' ist die IP von Edomi und 2835 ist auch die Bausteinnummer.

    Es kommt aber nicht im Webhook LBS an. Im Debug habe ich auch immer nur zwei kurze Einträge:

    Code:
     [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
     	 		[TR]
     			[TD]2020-04-18 08:25:14[/TD]
     			[TD]326503[/TD]
     			[TD]8912[/TD]
     			[TD]debug[/TD]
     			[TD]LBS19001076 [v0.2] id=2835: LBS started[/TD]
     		[/TR]
     		[TR]
     			[TD]2020-04-18 08:25:14[/TD]
     			[TD]327781[/TD]
     			[TD]8912[/TD]
     			[TD]debug[/TD]
     			[TD]LBS19001076 [v0.2] id=2835: LBS ended[/TD]
     		[/TR]
     	 [/TABLE]
    Wird der LBS dann von der webhook PHP angetriggert?

    Als Port aúf den ich Sende habe sende habe ich beim DP1500 80 eingestellt. Und als IP die http://192.168.1.34/webhook.php
    Zuletzt geändert von Michael85; 18.04.2020, 07:54. Grund: noch was vergessen

    #2
    Hmm, ist mein Problem so offensichtlich? Bekomme es einfach nicht hin. Bin mir aber auch nicht sicher ob der Webhook richtig läuft.
    ist es normal im Log das der Baustein Startet und direkt wieder Stoppt?

    Update: Habe jetzt mal versucht über Browser zu senden. Aber im Baustein kommt nix an Anfrage Http.PNG Status Baustein.PNG webhook.PNG
    Angehängte Dateien
    Zuletzt geändert von Michael85; 19.04.2020, 07:27.

    Kommentar


      #3
      Moin Michael85

      leider habe ich deinen neuen Thread erst jetzt hier gefunden. Schau doch mal in den LBS Thread zur WH4000 SE, da hab ich ein paar interessante Infos gepostet.

      Gruß
      Henrik

      Kommentar


        #4
        Hallo,

        ich habe dieses jetzt anders gelöst. Ich habe mir ein Script geschrieben welches die Daten auf meinen Raspberry Pi empfängt und auswertet und dieses dann per Remote Zugriff an Edomi übergibt. Das es diese Möglichkeit gibt weiß ich auch erst seit kurzem.

        Läuft jetzt seit heute Mittag. Bei Bedarf kann ich gerne den Code hier teilen.

        Kommentar


          #5
          Als Batteriewert bekomme ich von den Sensoren bei einem Akku 1.4 und bei einer Batterie 1.7 zurück.

          Ich würde jetzt mal davon ausgehen dass dieses die Spannungen sind.

          Kann mir jemand mehr sagen ab wann der Sensor nicht mehr arbeitet?

          Kommentar


            #6
            Zitat von Michael85 Beitrag anzeigen
            Hallo,

            ich habe dieses jetzt anders gelöst. Ich habe mir ein Script geschrieben welches die Daten auf meinen Raspberry Pi empfängt und auswertet und dieses dann per Remote Zugriff an Edomi übergibt. Das es diese Möglichkeit gibt weiß ich auch erst seit kurzem.

            Läuft jetzt seit heute Mittag. Bei Bedarf kann ich gerne den Code hier teilen.
            Gerne. Bitte teilen
            Jean-Luc Picard: "Things are only impossible until they are not."

            Kommentar


              #7
              Guten Morgen,

              hier der Code, dieser ist vorbereitet für die 8 Feuchtigkeitssensoren. Allerdings ist wohl zu erkennen was geändert werden muss für andere Geräte.

              Code:
              <?php
              
              // ################################################## ####
              
              // Parameter (anpassen auf lokale Gegebenheiten)
              $edomi_ip = '192.168.1.34';
              $remote_user = 're';
              $remote_pass = 're';
              $koids = array(
              2108, // koId Datenkopf 2108 = PASSKEY
              2109, // koId Stationstyp = stationtype
              2110, // koId Date/Time = dateutc
              2111, // koid Innentemperatur = tempinf
              2112, // koid Luftfeuchtigkeit = humidityin
              2113, // koid Luftdruck = baromrelin
              2114, // koid Luftdruck abs= baromabsin
              2115, // koid Bodenfeuchte 1 = soilmoisture1
              2116, // koid Bodenfeuchte 2 = soilmoisture2
              2117, // koid Bodenfeuchte 3 = soilmoisture3
              2118, // koid Bodenfeuchte 4 = soilmoisture4
              2119, // koid Bodenfeuchte 5 = soilmoisture5
              2120, // koid Bodenfeuchte 6 = soilmoisture6
              2111, // koid Bodenfeuchte 7 = soilmoisture7
              2122, // koid Bodenfeuchte 8 = soilmoisture9
              2123, // koid DP100 Sensor 1 Batterie = soilbatt1
              2124, // koid DP100 Sensor 2 Batterie = soilbatt2
              2125, // koid DP100 Sensor 3 Batterie = soilbatt3
              2126, // koid DP100 Sensor 4 Batterie = soilbatt4
              2127, // koid DP100 Sensor 5 Batterie = soilbatt5
              2128, // koid DP100 Sensor 6 Batterie = soilbatt6
              2129, // koid DP100 Sensor 7 Batterie = soilbatt7
              2130, // koid DP100 Sensor 8 Batterie = soilbatt8
              2131, // koid Frequenz = freq
              2132, //koid Model = model
              2133 //unbekannt
              );
              
              // ################################################## ####
              
              
              
              
              // netcat listener starten
              $buffer = shell_exec('nc -lv 5000');
              
              if ($buffer !== false) {
              echo $buffer."\n";
              $len = strlen($buffer);
              
              //Empfangenen String zerlegen
              $teile = explode("&", $buffer);
              }
              $max = sizeof($teile);
              for($i=0; $i < $max; $i++)
              {
              
              // Zerlegten String aufteilen in Bezeichnung und Wert und an Edomi übergeben
              $hilfsvar1 = $teile[$i];
              $hilfsvar2 = explode("=", $hilfsvar1);
              if($hilfsvar2[1] !== false){
              
              if ($hilfsvar2[0] == "stationtype") {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[1].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == "PASSKEY") {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[0].'&kovalue='.$hilfsvar2[1]);
              }
              
              else if ($hilfsvar2[0] == "dateutc") {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[2].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'tempinf') {
              $tempinc = (($hilfsvar2[1]-32)*(5/9)); //Umrechnung von F in °C
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[3].'&kovalue='.$tempinc);
              }
              
              elseif ($hilfsvar2[0] == 'humidityin') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[4].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'baromrelin') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[5].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'baromabsin') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[6].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture1') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[7].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture2') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[8].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture3') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[9].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture4') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[10].'&kovalue='.$hilfsvar2[1]);
              }
              elseif ($hilfsvar2[0] == 'soilmoisture5') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[11].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture6') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[12].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture7') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[13].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilmoisture8') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[14].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] =='soilbatt1') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[15].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt2') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[16].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt3') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[17].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt4') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[18].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt5') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[19].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt6') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[20].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt7') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[21].'kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'soilbatt8') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[22].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'freq') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[23].'&kovalue='.$hilfsvar2[1]);
              }
              
              elseif ($hilfsvar2[0] == 'model') {
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[24].'&kovalue='.$hilfsvar2[1]);
              }
              
              else{
              file_get_contents('http://'.$edomi_ip.'/remote?login='.$remote_user.'&pass='.$remote_pass. '&koid='.$koids[25].'&kovalue='.$teile[$i]);
              }
              
              }
              }
              ?>
              Da ich nicht der PHP-Experte bin, kann es natürlich sein dass es deutlich schöner zu Programmieren geht.
              Ich rufe das Script per Crontab alle 6Minuten auf.

              Kommentar


                #8
                Hallo allerseits,

                ich würde mir gerne den DP1500 holen und dann direkt in EDOMI mit einem LBS anbinden. Da ich mich null mit PHP auskenne würde ich bei der Entwicklung unterstützen wenn sich ggf. jemand findet einen LBS zu entwickeln... Oder gibt es irgendwo ein how-to-build-an-LBS :-)?

                Gruß
                Henrik

                Kommentar


                  #9
                  Also man kann ja anscheinend mit dem Webhook LBS sich die Post Nachrichten an den esomi Server schicken lassen.

                  Das habe ich aber nicht ans laufen bekommen. Wenn du das hinbekommst das du die Post-Nachricht an Edomi übergeben bekommst, dann kann man den Code von mir recht schnell in einen LBS packen und auswerten lassen.

                  Kommentar


                    #10
                    Doppelt post
                    Zuletzt geändert von Michael85; 25.04.2020, 08:12.

                    Kommentar


                      #11
                      Hallo zusammen,

                      ich habe jetzt auch die dp1500 und versuchte eine direkte Verbindung zwischen dem Server und meinem Wiregate hinzubekommen. Noch klappt es nicht, vielleicht hat hier Jemand eine Idee woran es liegt.

                      Im dp1500 habe ich eingestellt, dass er an die IP des Wiregates mit dem Port 49990 die Daten schickt.

                      Dort habe ich in der Visu Folgendes eingetragen:
                      Code:
                      00:00:00 /usr/bin/socat tcp-listen:49990,reuseaddr,fork udp-datagram:49991,
                      Via Plugin versuche ich jetzt die Daten zu lesen. Allerdings kommt nichts an. Sendet das dp1500 via tcp oder udp? Habe da etwas rumgespielt, aber nichts klappte. Ziel ist es einfach die Sensorwerte in dem Plugin direkt auszulesen und sie dann direkt an knx zu schicken.

                      Kommentar


                        #12
                        Also von Wiregate habe ich keine Ahnung. Aber der DP1500 senden einen Http Post.

                        Kommentar


                          #13
                          Hallo allerseits,

                          ich habe am Wochenende meinen DP1500 bekommen inkl. WH4000SE Außeneinheit. In der App soweit alles eingerichtet, weiterleitung im Ecowittformat an Edomi Port 8000 eingerichtet. Mit "nc -lv 8000" bekomme ich den String in der Shell auch wunderbar angezeigt.

                          Meine Frage ist jetzt: Wie kann ich möglichst einfach in Edomi einen TCP-Port öffnen und die Empfangenen Daten in ein KO schreiben? Den Webhook LBS habe ich auch nicht ans laufen bekommen. Frage ist, ob man hierzu ggf. die Fernwartungsfunktion missbrauchen könnte? Oder hat noch jemand einen anderen Lösungsansatz?

                          Gruß
                          Henrik

                          Kommentar


                            #14
                            Hallihallo!

                            Weil Henrik mich dazu heute angeschrieben hatte ...

                            Wer einen Umweg ueber UDP oder http gehen moechte, kann das auch ueber die generic-Funktion des FOSHKplugins realisieren.
                            Vorteil:
                            Beliebig viele custom server konfigurierbar
                            Umrechnung erfolgt bereits im Plugin
                            Weiterverarbeitung auch ueber weewx moeglich.
                            Die Daten koennen in verschiendene Formaten abgefragt und ausgegeben werden.

                            https://foshkplugin.phantasoft.de
                            bzw.
                            https://foshkplugin.phantasoft.de/generic/

                            Wenn mir jemand erklaert, wie die internen KO angelegt werden koennen, koennte ich FOSHKplugin auch dazu bewegen, diese direkt ueber koid und kovalue und den Fernzugriff zu beschreiben.

                            Gruss, Oliver
                            Zuletzt geändert von olicat; 08.06.2020, 16:08.

                            Kommentar


                              #15
                              Zitat von olicat Beitrag anzeigen
                              Weil Henrik mich dazu heute angeschrieben hatte ...
                              Hätte ich gewusst, dass du auch hier aktiv bist, hätte ich mich ja garnicht im grünen Forum anmelden müssen ;-)
                              Danke nocheinmal für deine Hilfe!

                              Gruß
                              Henrik

                              Kommentar

                              Lädt...
                              X