Ankündigung

Einklappen
Keine Ankündigung bisher.

Einbindung der ProCon.IP - Webbasierte Poolsteuerung

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

    Einbindung der ProCon.IP - Webbasierte Poolsteuerung

    Hallo,

    ich habe die Poolsteuerung ProCon.IP von PoolDigital und möchte diese gerne in Edomi einbinden.
    Von der Poolsteuerung werden die Daten im ASCII CSV Format zur Verfügung gestellt.
    Beim Aufruf der Datei GetState.csv auf der Poolsteuerung werden die entsprechenden Daten zurückgeliefert.

    Das Übertragungsformat selber ist zeilenorientiert mit einem einzigen Line Feed am Ende = \n.
    Innerhalb einer Zeile werden die einzelnen Werte durch Kommas voneinander getrennt.
    Das letzte Element einer jeden Zeile hat kein Komma, stattdessen ein LineFeed =\n.
    Insgesamt 6 Zeilen, wobei die erste Zeile etwas vom Format der anderen abweicht.

    Wie kann ich aus Edomi heraus überhaupt die Datei GetState.csv aufrufen. Also mit z.B. http://192.168.178.25/getstate.csv um das Senden der Daten zu starten?
    MIt welchen LBS kann ich dann die zurückgelieferten Daten am Besten zerlegen um die einzelnen Werte in iKO zu speichern?

    Oder ist das alles so spezifisch dass ich selbst Hand anlegen muss?
    Wenn ja wäre es hilfreich zu wissen an welchen LBS mich für das Auslesen der Daten sowie für die Weiterverarbeitung orientieren könnte.

    Danke.

    Servus Martin

    #2
    Bei URL deine URL eingeben und für die Antwort ein KO definieren.
    Dann den Befehl aus einer Logik heraus in beliebigem Rytmus starten.

    Das Fenster findest du unter Konfigration / HTTP/UDP/Shell.

    Bildschirmfoto 2020-01-16 um 19.12.40.png
    Angehängte Dateien

    Kommentar


      #3
      Stell mal ein paar Daten die zurückkommen rein, ich bin sicher dir kann geholfen werden.
      String zerteilen o.ä. sollte das Stichwort sein.
      Alternativ ein kleines script in der shell welches mit awk, grep und co das nötige rausfiltert und via KO-remote an edomi schickt.
      Ich würde es jedoch in der Edomi Logik erschlagen.

      Kommentar


        #4
        Hallo Johannes,

        vielen Dank für diese Info.
        Hab es gleich mal ausprobiert und auch eine entsprechende Rückmeldung im KO erhalten.
        Wahnsinn was Edomi alles kann.

        Hier mal der Inhalt des KO:
        kopool.png

        Mit dem String zerteilen LBS mach ich mich dann mal dran die Werte an KOs zu verteilen.

        Nochmals danke für die super Hilfe.

        Servus Martin

        Kommentar


          #5
          maki2003 kannst die GetState.csv mal zur Verfügung stellen. Ich hatte schon vor längerer Zeit mal begonnen dafür eine LBS zu bauen.

          Kommentar


            #6
            timberland direkt ein LBS für die ProCon.IP oder was Allgemeines?

            Eine Demo des Poolcontrolers ist unter http://demo.poolcontroller.de/ verfügbar. Die GetState.csv der Demo ist unter folgendem Link aufrufbar: http://demo.poolcontroller.de/GetState.pl. Hier ist es zwar .pl anstatt .csv aber die Daten sind die gleichen.
            Eine genaue Beschreibung der zurückgelieferten Daten findet man in der Beschreibung der Poolsteuerung ab Seite 106 http://www.pooldigital.de/trm/TRM_ProConIP.pdf.

            Gestern Abend hab ich noch kurz versucht das KO mit den Werten aus der GetState.csv mit dem String zerteilen 20-fach LBS zu zerlegen. Die Daten sind, wie oben beschrieben, in 6 Zeilen aufgeteilt wobei am Ende jeder Zeile ein line feed steht. Die Werte jeder Zeile sind dann mit Kommas voneinander getrennt. Das mit den Kommas ist ja kein Problem, aber was muss ich als Separator im LBS für das line feed angeben? \n kennt das LBS nicht.

            Kommentar


              #7
              Was soll so ein LBS denn koennen? Nur die einzelnen Daten aus der CSV an separaten Ausgaengen ausgeben? Muss man evtl auch authentifizieren? Und wenn ja, wie?

              Kommentar


                #8
                Authentifizierung ist nicht notwendig. Das LBS soll die Daten aus der CSV teilweise miteinander multiplizieren und addieren (Rohwert * Gain + Offset) und an einem Ausgang zur Verfügung stellen. Bzw. Einzelwerte, Bezeichnungen nur aus dem Gesamtstring rauslösen und an einen Ausgang weiterleiten.
                Insgesamt sind es 215 Einzelwerte/-informationen welche in der CSV enthalten sind. Wirklich an den Ausgängen braucht man so ca. 50 Werte und Bezeichnungen.

                Kommentar


                  #9
                  Dann so in etwa:

                  PHP-Code:
                  $csvDatafile_get_contents("Die_URL_zum_csv_File.csv");
                  $lines explode(PHP_EOL$csvData);
                  foreach (
                  $lines as $line) {
                  $string str_getcsv($line);
                  $line_array explode(',',$string[0]);
                  array[] = 
                  $line_array;

                  Und dann das array aufdröseln (ggf umrechnen) , und an die Ausgänge verteilen
                  Mfg Micha
                  Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

                  Kommentar


                    #10
                    Guck mal ob dir das hier plausible Werte liefert...

                    Kommentar


                      #11
                      Oder mit fgetcsv()

                      Kommentar


                        #12
                        vento66 danke für den Code. Momentan noch etwas unverständlich da ich mit PHP noch nichts zu tun hatte aber in Sachen Programmierung kein kompletter Frischling bin.
                        Ist es jetzt sinnvoller ein LBS zu machen dass auch das CSV ausliest und dann die Daten gleich weiterverarbeitet oder die Edomi interne Möglichkeit wie oben beschrieben und bereits getestet einzusetzen und dann ein LBS zu machen das den String aufbröselt?

                        Kommentar


                          #13
                          wintermute hatte deine Antwort noch nicht gesehen als ich an vento66 geschrieben habe.
                          Schaut ja vielversprechend aus. Erstmal vielen herzlichen Dank dafür. Also mit so einer Unterstützung hätte ich jetzt nicht gerechnet, dass gleich ein fertiges LBS angeboten wird. Ist ja Wahnsinn. Werde mir das Morgen anschauen, da ich Heute leider keine Zeit mehr haben. Danke.
                          Danke.

                          Kommentar


                            #14
                            Hihi, finde das Thema auch sehr interessant, da ich mir im Sommer auch diese Steuerung einbauen werde.

                            Gruß
                            !Bin noch am lernen!

                            Kommentar


                              #15
                              wintermute leider funktioniert es noch nicht.

                              Wenn ich die unter E2 die Demo URL "http://demo.poolcontroller.de/" und unter E3 "GetState.pl" eingebe, bringt es mir in der Live-Ansicht im Logik-Editor die gewünschten Daten an den Ausgängen. Damit funktioniert es.

                              Trage ich dann unter E2 die richtige URL "http://192.168.178.25/" und unter E2 "GetState.csv" ein, dann bringt er mir nur an A11 folgenden Inhalt
                              A11.png

                              Und im Fehler-Log erscheint folgendes
                              fehlerlog.png

                              Gebe ich im Browser die URL " http://192.168.178.25/GetState.csv" ein kommen alle Daten richtig

                              getstate2.png
                              Kannst du mir hier bitte weiterhelfen. Danke.
                              Zuletzt geändert von maki2003; 18.01.2020, 15:28.

                              Kommentar

                              Lädt...
                              X