Plugin ICO ONDILO

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • alexmuli
    Dumb Home'r
    • 23.11.2015
    • 10

    #16
    Sehr gut, ich habe das in der Dokumentation schon mit aktualisiert.

    Kommentar

    • stefan01220
      Smart Home'r
      • 10.02.2020
      • 36

      #17
      Leider immer noch das gleiche.
      Angehängte Dateien

      Kommentar

      • GuentherA
        Dumb Home'r
        • 22.01.2022
        • 27

        #18
        Hallo,

        ich habe mir jetzt auch so ein Teil bestellt und wollte das natürlich auch gleich in meinen Miniserver (Gen.1) integrieren. Mir liefert das LOG leider folgenden Fehler:

        2022-05-14 17:05:01 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:01 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "POST /oauth2/token HTTP/1.1" 200 113
        2022-05-14 17:05:01 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:01 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "POST /oauth2/token HTTP/1.1" 200 113
        2022-05-14 17:05:01 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:02 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "GET /api/customer/v1/pools HTTP/1.1" 200 350
        2022-05-14 17:05:02 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:03 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "GET /api/customer/v1/pools HTTP/1.1" 200 350
        2022-05-14 17:05:03 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:04 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "GET /api/customer/v1/user/units HTTP/1.1" 200 4
        2022-05-14 17:05:04 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
        2022-05-14 17:05:04 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "GET /api/customer/v1/user/units HTTP/1.1" 200 4
        2022-05-14 17:05:04 root CRITICAL 'NoneType' object is not subscriptable
        Traceback (most recent call last):
        File "/opt/loxberry/data/plugins/ICO/ico.py", line 577, in
        main(args)
        File "/opt/loxberry/data/plugins/ICO/ico.py", line 205, in main
        units_orp = OndiloAPI().get_units(access_token)['orp']
        TypeError: 'NoneType' object is not subscriptable

        Hat da jemand eine Idee? Diese Meldung hat sich ja bisher auf die Hardness bezogen.

        Danke und LG
        Günther

        Kommentar

        • Gast

          #19
          Servus,

          ich habe einen origialen ICO (also keinen BWT) gestern ausgewintert und das Plugin funktioniert leider nicht mehr. im Herbst hat es noch super funktioniert....

          Code:
          2022-05-15 09:25:07 root CRITICAL 'tds'
          Traceback (most recent call last):
          File "/opt/loxberry/data/plugins/ICO/ico.py", line 577, in
          main(args)
          File "/opt/loxberry/data/plugins/ICO/ico.py", line 211, in main
          units_tds = OndiloAPI().get_units(access_token)['tds']
          KeyError: 'tds'
          .

          lg Werner

          Kommentar

          • GuentherA
            Dumb Home'r
            • 22.01.2022
            • 27

            #20
            Also ich habe mir jetzt mal ein bisscen selbst geholfen, ich habe das Abrufen der Units auskommentiert und an den verwendeten Stellen durch einfache Strings ersetzt. Soweit funktioniert das. Ich vermute eine Änderung in der API, aber soweit bin ich nicht drin, schon garnicht in python ;-)

            Hier was ich gemacht hab:

            Ab Zeile 204:
            Code:
            ##units_conductivity = OndiloAPI().get_units(access_token)['conductivity']
            ##units_hardness = OndiloAPI().get_units(access_token)['hardness']
            #units_orp = OndiloAPI().get_units(access_token)['orp']
            #units_pressure = OndiloAPI().get_units(access_token)['pressure']
            #units_salt = OndiloAPI().get_units(access_token)['salt']
            #units_speed = OndiloAPI().get_units(access_token)['speed']
            #units_temperature = OndiloAPI().get_units(access_token)['temperature']
            #units_volume = OndiloAPI().get_units(access_token)['volume']
            #units_tds = OndiloAPI().get_units(access_token)['tds'] #print("Units:",units_temperature)
            Also von 204 bis 213 auskommentiert.

            An den Verwendungsstellen der zb. units_orp diese dann durch 'MILLI_VOLT' ersetzt (dies zb in Zeile 294). Die Verwendeten Bezeichnungen der Einheiten sollten die sein, die die API bei dem oben auskommentierten Aufruf zurückgibt. So hätte ich das zumindest verstanden.

            Ab Zeile 284 sieht es dann bei mir so aus:
            Code:
            print(" ")
            print("Send follow UDP-Messages to Miniserver: ",miniserverIP," on UDP-Port: ",virtualUDPPort)
            print(" ")
            temp = OndiloAPI().get_values(pool_id, access_token)[0]['value']
            #packet_temp = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_Temperatur",date_time_obj , conf_temp_low, temp, conf_temp_high, units_temperature)
            packet_temp = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_Temperatur",date_time_obj , conf_temp_low, temp, conf_temp_high, 'CELSIUS')
            print(packet_temp)
            sock.sendto(bytes(packet_temp, 'utf-8'), (miniserverIP, virtualUDPPort))
            
            orp = OndiloAPI().get_values(pool_id, access_token)[1]['value']
            #packet_orp = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_ORP",date_time_obj, conf_orp_low, orp ,conf_orp_high, units_orp)
            packet_orp = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_ORP",date_time_obj, conf_orp_low, orp ,conf_orp_high, 'MILLI_VOLT')
            print(packet_orp)
            sock.sendto(bytes(packet_orp, 'utf-8'), (miniserverIP, virtualUDPPort))
            
            ph = OndiloAPI().get_values(pool_id, access_token)[2]['value']
            packet_ph = "{0}.{1}_min{2}_={3}_max{4}".format("Ondilo_ICO_PH ",date_time_obj, conf_ph_low, ph ,conf_ph_high)
            print(packet_ph)
            sock.sendto(bytes(packet_ph, 'utf-8'), (miniserverIP, virtualUDPPort))
            
            tds = OndiloAPI().get_values(pool_id, access_token)[3]['value']
            #packet_tds = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_TDS",date_time_obj, conf_tds_low, tds ,conf_tds_high, units_tds)
            packet_tds = "{0}.{1}_min{2}_={3}_max{4}-{5}".format("Ondilo_ICO_TDS",date_time_obj, conf_tds_low, tds ,conf_tds_high, 'MICRO_SIEMENS_PER_CENTI_METER')
            print(packet_tds)
            sock.sendto(bytes(packet_tds, 'utf-8'), (miniserverIP, virtualUDPPort))
            
            battery = OndiloAPI().get_values(pool_id, access_token)[4]['value']
            packet_battery = "{0}.{1}_{2}%".format("Ondilo_ICO_Battery",date_ti me_obj, 'Percent')
            print(packet_battery)
            sock.sendto(bytes(packet_battery, 'utf-8'), (miniserverIP, virtualUDPPort))
            Vielleicht hilft das ja wem...

            LG Günther

            Kommentar

            • stefan01220
              Smart Home'r
              • 10.02.2020
              • 36

              #21
              Neue Session. Leider bekomm ich das Teil immer noch nicht zum Laufen.


              Angehängte Dateien

              Kommentar

              • half-bit
                Smart Home'r
                • 14.03.2021
                • 39

                #22
                Hatte auch das Problem und habe wie GuentherA die Zeilen mit den Einheiten auskommentiert bzw. einfach gesetzt:


                Code:
                units_orp = "mV" #OndiloAPI().get_units(access_token)['orp']
                units_pressure = "hPa" #OndiloAPI().get_units(access_token)['pressure']
                units_salt = "g/L" #OndiloAPI().get_units(access_token)['salt']
                units_speed = "m/s" #OndiloAPI().get_units(access_token)['speed']
                units_temperature = "°C" #OndiloAPI().get_units(access_token)['temperature']
                units_volume = "m3" #OndiloAPI().get_units(access_token)['volume']
                units_tds = "g/L" #OndiloAPI().get_units(access_token)['tds']
                Meine Python Kenntnisse sind leider sehr bescheiden um das korrekt zu verstehen. Wenn ich etwas mehr Zeit habe schaue ich mir das genauer an. zz0.e4mxc86d00dzz

                Kommentar

                • rage302
                  Extension Master
                  • 17.11.2017
                  • 136

                  #23
                  Hi Leute, kurze Frage.

                  Funktioniert das Plugin auch mit der BWT Variante des Ondilo ICO (Süßwasserversion)?

                  ​Danke sehr.

                  greetings rage

                  Kommentar

                  • rage302
                    Extension Master
                    • 17.11.2017
                    • 136

                    #24
                    ...hat sich erledigt. Da sich leider das Plugin nicht auf Loxberry V3 installieren lässt.
                    Hat da jemand eine Idee?

                    Danke

                    greetings rage

                    Kommentar

                    • justStefan
                      Smart Home'r
                      • 24.08.2021
                      • 85

                      #25
                      Also bei mir ging das problemlos...

                      Kommentar


                      • rage302
                        rage302 kommentierte
                        Kommentar bearbeiten
                        ...stimmt... jetzt hats bei mir auch geklappt (nach einem Loxberry neustart)
                    • rage302
                      Extension Master
                      • 17.11.2017
                      • 136

                      #26
                      Zitat von half-bit
                      Hatte auch das Problem und habe wie GuentherA die Zeilen mit den Einheiten auskommentiert bzw. einfach gesetzt:


                      Code:
                      units_orp = "mV" #OndiloAPI().get_units(access_token)['orp']
                      units_pressure = "hPa" #OndiloAPI().get_units(access_token)['pressure']
                      units_salt = "g/L" #OndiloAPI().get_units(access_token)['salt']
                      units_speed = "m/s" #OndiloAPI().get_units(access_token)['speed']
                      units_temperature = "°C" #OndiloAPI().get_units(access_token)['temperature']
                      units_volume = "m3" #OndiloAPI().get_units(access_token)['volume']
                      units_tds = "g/L" #OndiloAPI().get_units(access_token)['tds']
                      Meine Python Kenntnisse sind leider sehr bescheiden um das korrekt zu verstehen. Wenn ich etwas mehr Zeit habe schaue ich mir das genauer an. zz0.e4mxc86d00dzz
                      ...danke für die Info... damit konnte ich den Feher:
                      Code:
                      TypeError: 'NoneType' object is not subscriptable
                      auch beheben.
                      Es läuft jetzt auf meinem Loxberry V3.

                      Danke sehr.

                      greetings rage

                      Kommentar

                      • funpager
                        Dumb Home'r
                        • 11.04.2020
                        • 15

                        #27
                        Seit etwa 3 Tagen liefert das Plugin keinerlei Werte mehr.
                        Hat sonst noch jemand das Problem?
                        Habe gerade versucht den ICO via Home-Assistant einzubinden, auch hier das selbe Problem und im HA Forum häufen sich die Meldungen dass aktuell keine Daten mehr kommen..
                        Hat Ondilo die API geändert / abgeschaltet?
                        Jemand eine Idee oder wäre der Plugin-Ersteller bereit bei Gelegenheit mal zu schauen was los ist und ggf. eine neue Version bereitzustellen? Wäre wirklich großartig! Das Plugin ist super wichtig für uns geworden...
                        Vielen Dank!

                        Kommentar


                        • spax72210
                          spax72210 kommentierte
                          Kommentar bearbeiten
                          Hi, stimmt. Weder über HomeAssistant noch via Plugin. Es kommen keine Daten.
                      • justStefan
                        Smart Home'r
                        • 24.08.2021
                        • 85

                        #28
                        Hallo!

                        Gibt es hier schon ein Update? Die Poolsaison startet ja demnächst und ich müsste mir für dieses Jahr wohl neue Sensoren kaufen, was ich nicht will/werde, wenn man den ICO nicht mehr in Loxone einbinden kann.

                        LG
                        ​​​

                        Kommentar

                        • roaffa
                          Azubi
                          • 26.01.2023
                          • 3

                          #29
                          Okay, ich hab das Plugin wieder zum Laufen bekommen - anscheinend wurde die API geändert. Credits an https://pypi.org/project/ondilo/, hab hier nur im Code geguckt was sich geändert hat und auf das Plugin übertragen. Es sind nur zwei Zeilen in der ICO.py anzupassen.

                          Zeile 232 (Änderung Format Zeitstempel)
                          alt:
                          Code:
                          date_time_obj = datetime.strptime(data[0]['value_time'], '%Y-%m-%dT%H:%M:%S+0000') + timedelta(hours=2)
                          neu:
                          Code:
                          date_time_obj = datetime.strptime(data[0]['value_time'], '%Y-%m-%d %H:%M:%S') + timedelta(hours=2)

                          Zeile 427 (Angabe von Parametern bei Abfrage der Messwerte)
                          alt:
                          Code:
                          last_url = self._api_url + 'pools/' + str(pool_id) + '/lastmeasures'
                          neu:
                          Code:
                          last_url = self._api_url + 'pools/' + str(pool_id) + '/lastmeasures?types[]=temperature&types[]=orp&types[]=ph&types[]=salt&types[]=battery&types[]=tds&types[]=rssi'

                          Kommentar

                          • Woody_80
                            Azubi
                            • 13.12.2023
                            • 3

                            #30
                            Ich bin absoluter Anfänger, und habe nun das Plugin zwar mit der Änderung von roaffa zum laufen gebracht, nur wird bei mir nur die Temperatur über UDP übertragen. PH Wert usw. werden keine Werte gesendet. An was könnte das liegen?

                            Kommentar

                            Lädt...