Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Heizöl24 - MEX

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Heizöl24 - MEX

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tueftler17 @gjo last edited by

      @gjo Danke! Leider sind verschlüsselte Daten, wohl als JSON, enthalten. Ich hätte akut keine Idee wie man diese entschlüsseln sollte. Daher habe ich keine Idee wie man an die Kommunikation zwischen MEX und der remote-IP herankommen könnte.
      Alternativ sehe ich nur noch regelmäßig die Webseite mit den Messwerten abzrufufen und dort irgendwie die Daten herauszusuchen. Das wäre aber in meinen Augen eine never ending story, da müsste man bei jeder Änderung der Webseite erneut rangehen und da würde ich bei regelmäßigen Änderungen ohne Vorwarnung schnell den Spaß dran verlieren. Das ist mir zu riskant um es in einen Adapter zu stecken und dann vernünftig zu supporten.
      Schade!

      cleex 1 Reply Last reply Reply Quote 0
      • cleex
        cleex @tueftler17 last edited by

        Hab das Ding mal aufgeschaubt und da ist ein Atmel SAM D20 drin. Pinout müsste folgendes sein:
        8f6fea60-eb66-4405-883e-56bc18c1afc7-grafik.png

        Denke das einfachste ist versuchen die Firmware zu ersetzen oder anzupassen, habe aber da leider zu wenig Erfahrung.

        C 1 Reply Last reply Reply Quote 0
        • C
          cainam @cleex last edited by

          ist hier jemand weiter gekommen oder gibt es den adapter oder ein api inzwischen?

          spicer 1 Reply Last reply Reply Quote 0
          • spicer
            spicer @cainam last edited by

            @cainam
            Habe leider auch noch nichts gehört 😞

            1 Reply Last reply Reply Quote 0
            • 2
              2radtax last edited by

              Hallo zusammen,

              ich würde ebenso lieber die Daten meines Mex Sensors direkt abfragen und bin bei der Suche auf diesen Forums-thread gekommen. Was eine API Umsetzung seitens des Herstellers angeht, sehe ich da keine Hoffnung mehr.

              Hardware technisch gibt es das (vermutlich) gleiche Teil auch bei anderen Herstellern:

              • TEK 750 Wi-Fi Ultrasonic
              • Proteus EcoFrog WLAN

              Proteus listet auf der Produktseite sogar "API Schnittstelle" als Feature, wobei daraus nicht hervor geht, ob das lokale Gerät einen API Endpoint stellt oder ob die API in der Cloud liegt.

              Ich dachte, ich teile mal meine Recherche-Ergebnisse hier, vielleicht ist ja jemand schon weiter gekommen.

              LG

              spicer 1 Reply Last reply Reply Quote 0
              • spicer
                spicer @2radtax last edited by

                @2radtax
                Habe erst vorletzte Woche mal wieder Heizoel24 wegen dem angeschrieben.
                Antwort:
                "leider wird es eine solche Option auf absehbare Zeit nicht geben."

                Frage um Möglichkeit, ID, Cloud Link usw zu erhalten um selber eine Cloud-Abfrage zu schreiben; Antwort:
                "leider gibt es eine solche Möglichkeit noch nicht. Ein entsprechender Featurewunsch wurde allerdings aufgenommen. Ob dieses noch 2024 umgesetzt wird, können wir noch nicht abschätzen."

                1 Reply Last reply Reply Quote 0
                • spicer
                  spicer last edited by spicer

                  Habe hier ein Python Script erstellt, welches funktioniert!
                  Herzlichen Dank an cpatscheider für seine Unterstützung! ( https://github.com/Secret-Lab-Productions/heizoel24-mex/discussions/2 )
                  Die Daten sind dann unter mqtt/0/MEX zufinden.
                  Cronjob (crontab -e):
                  0 */3 * * * /home/pi/mex.py # Pfad anpassen!

                  Rechte 754 ( chmod 754 mex.py )

                  mex.py

                  #!/usr/bin/python3
                  
                  ##################################
                  #             V1.1               #
                  # MEX-Daten in ioBroker einlesen #
                  #    Benötigt den MQTT Adapter   #
                  #    (C) 2024 Daniel Luginbühl   #
                  ##################################
                  
                  ########################### WICHTIGE INFOS ###############################
                  #### Dieses Script per Cronjob alle 2 bis 4 Stunden ausführen         ####
                  
                  #### Im ioBroker ist der MQTT Broker/Client Adapter zu installieren   ####
                  #### Einstellungen:                                                   ####
                  ####    IP: Server/Broker                                             ####
                  ####    Authentifizierungseinstellungen: Benutzer/Passwort definieren ####
                  
                  #### Zu installieren (auf Host, wo dieses Script läuft):              ####
                  ####    sudo apt install python3-requests                             ####
                  ####    pip install paho-mqtt                                         ####
                  ##########################################################################
                  
                  #### Hier Einträge anpassen! ####
                  username = "AAAAA@gmail.com"    # Deine Email Adresse bei Heizoel24
                  passwort = "BBBBBBBBB"          # Dein Passwort bei Heizoel24
                  
                  broker_address = "192.168.1.50" # ioBroker IP, auf welchem der MQTT (Server) Adapter läuft
                  mqtt_user = "uuuuuu"            # ioBroker MQTT User     (in Authentifizierungseinstellungen definiert)
                  mqtt_pass = "pppppp"            # ioBroker MQTT Passwort (in Authentifizierungseinstellungen definiert)
                  
                  debug = False                   # True = Debug Infos auf die Konsole
                  
                  ##########################################################################
                  
                  import requests
                  import time
                  import json
                  import paho.mqtt.client as mqtt
                  
                  def mqtt_send(client, topic, wert):
                      client.publish("MEX/" + topic, wert)
                  
                  def login():
                      if debug:
                          print('Login in...')
                      global session_id
                      global logged_in
                      url = "https://api.heizoel24.de/app/api/app/Login"
                      newHeaders = {'Content-type': 'application/json'}
                      reply = requests.post(url, json = { "Password" : passwort, "Username" : username}, headers=newHeaders)
                  
                      if reply.status_code == 200:
                          if debug:
                              print("Login OK")
                          reply_json = json.loads(reply.text)
                          if reply_json['ResultCode'] == 0:
                              session_id = reply_json['SessionId']
                              if debug:
                                  print('Session ID: ' + session_id)
                              logged_in = True
                      else:
                          print('Login nicht OK! Heizoel24 Login Status Code: ' + str(reply.status_code))
                  
                  def mex():  
                      login()
                      if debug:
                          print('Refresh sensor data cache...')
                      url = 'https://api.heizoel24.de/app/api/app/GetDashboardData/'+ session_id + '/1/1/False'
                      reply = requests.get(url)     
                      if reply.status_code == 200:
                          if debug:
                              print("Daten wurden empfangen")
                          sensor_data = reply
                      else:
                          if debug:
                              print('Heizoel24 GetDashboardData Status Code: ' + str(reply.status_code))
                          sensor_data = "error"   # Fehler. Keine Daten empfangen.
                      return sensor_data
                  
                  def main():
                      daten = mex()
                      if daten == "error":
                          print("Fehler. Keine Daten empfangen.")
                          return
                      daten = daten.json()
                      if debug:
                          print(daten)
                  
                      topic1 = ['SensorId', 'IsMain', 'CurrentVolumePercentage', 'CurrentVolume', 'NotifyAtLowLevel', 'NotifyAtAlmostEmptyLevel', 'NotificationsEnabled', 'Usage', 'RemainsUntil', 'MaxVolume', 'ZipCode', 'MexName', 'LastMeasurementTimeStamp', 'LastMeasurementWithDifferentValue', 'BatteryPercentage', 'Battery', 'LitresPerCentimeter', 'LastMeasurementWasSuccessfully', 'SensorTypeId', 'HasMeasurements', 'MeasuredDaysCount', 'LastMeasurementWasTooHigh', 'YearlyOilUsage', 'RemainingDays', 'LastOrderPrice', 'ResultCode', 'ResultMessage']
                  
                      topic2 = ['LastOrderPrice', 'PriceComparedToYesterdayPercentage', 'PriceForecastPercentage', 'HasMultipleMexDevices', 'DashboardViewMode', 'ShowComparedToYesterday', 'ShowForecast', 'ResultCode', 'ResultMessage']
                  
                      RemainsUntilCombined = ['MonthAndYear', 'RemainsValue', 'RemainsUnit']
                  
                      client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1, "MEX")
                      client.username_pw_set(mqtt_user, mqtt_pass)
                      client.connect(broker_address)
                  
                      if debug:
                          print("---------------------")
                      for n in range(len(topic2)):
                          if debug:
                              print(topic2[n] + ":", daten[topic2[n]])
                          mqtt_send(client, "PricingForecast/" + topic2[n], daten[topic2[n]])
                  
                      daten = daten["Items"]
                      daten = daten[0]
                  
                      if debug:
                          print("---------------------")
                      for n in range(len(topic1)):
                          if debug:
                              print(topic1[n] + ":", daten[topic1[n]])
                          mqtt_send(client, "Items/" + topic1[n], daten[topic1[n]])
                  
                      daten3 = daten['RemainsUntilCombined']
                  
                      if debug:
                          print("---------------------")
                          print('RemainsUntilCombined:')
                      for n in range(len(RemainsUntilCombined)):
                          if debug:
                              print(RemainsUntilCombined[n] + ":", daten3[RemainsUntilCombined[n]])
                          mqtt_send(client, "RemainsUntilCombined/" + RemainsUntilCombined[n], daten3[RemainsUntilCombined[n]])
                  
                      client.disconnect()
                  
                  #### Beispiel Ausgaben. Diese können dann natürlich auch in Datenpunkte geschrieben werden. ####
                  #    print()
                  #    print("SensorId:                 ", daten["SensorId"])
                  #    print("Aktueller Inhalt in %:    ", daten["CurrentVolumePercentage"])
                  #    print("Aktueller Inhalt in Liter:", daten["CurrentVolume"])
                  #    print("Max Tankinhalt in Liter:  ", daten["MaxVolume"])
                  #    print("MEX Batterie in %:        ", daten["BatteryPercentage"])
                  #    print("Letzte Messung in Ordnung:", daten["LastMeasurementWasSuccessfully"])
                  #    print("Letzte Messung war am:    ", daten["LastMeasurementTimeStamp"])
                  #    print("Reicht noch für Tage:     ", daten["RemainingDays"])        
                  
                  
                  if __name__ == '__main__':   
                      main()
                  
                  

                  Auch hier zufinden: https://github.com/ltspicer/iobroker.mex

                  G 1 Reply Last reply Reply Quote 1
                  • G
                    gjo @spicer last edited by

                    @spicer
                    sehr sehr cool .... vielen Dank dafür!!!

                    eine Frage zu einer Fehlermedung die ich erhalte:

                    root@DietPi:/home/script# python3 /home/script/mex.py
                    Traceback (most recent call last):
                      File "/home/script/mex.py", line 141, in <module>
                        main()
                      File "/home/script/mex.py", line 95, in main
                        client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1, "MEX")
                    AttributeError: module 'paho.mqtt.client' has no attribute 'CallbackAPIVersion'
                    
                    

                    Was könnte da falsch laufen?

                    1 Reply Last reply Reply Quote 0
                    • spicer
                      spicer last edited by spicer

                      @gjo editiere Zeile 95 nach:
                      client = mqtt.Client("MEX")

                      Ich vermute, dass Du mqtt Version < 2.0 hast.
                      Werde das beim nächsten Update abfangen.

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        gjo @spicer last edited by

                        @spicer

                        das war auch meine Vermutung.

                        heidenei ... nach:

                        root@DietPi:/home/script# pip install paho-mqtt --upgrade
                        Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/
                        Requirement already satisfied: paho-mqtt in /usr/local/lib/python3.7/dist-packages (1.6.1)
                        Collecting paho-mqtt
                         Downloading https://www.piwheels.org/simple/paho-mqtt/paho_mqtt-2.0.0-py3-none-any.whl (66 kB)
                            ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.9/66.9 kB 746.1 kB/s eta 0:00:00
                        Installing collected packages: paho-mqtt
                         Attempting uninstall: paho-mqtt
                           Found existing installation: paho-mqtt 1.6.1
                           Uninstalling paho-mqtt-1.6.1:
                             Successfully uninstalled paho-mqtt-1.6.1
                        Successfully installed paho-mqtt-2.0.0
                        WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
                        
                        [notice] A new release of pip is available: 23.3.2 -> 24.0
                        [notice] To update, run: python3 -m pip install --upgrade pip
                        
                        

                        kommt jetzt:

                        root@DietPi:/home/script# python3 /home/script/mex.py
                        Traceback (most recent call last):
                          File "/usr/local/lib/python3.7/dist-packages/paho/mqtt/client.py", line 49, in <module>
                            from typing import Literal
                        ImportError: cannot import name 'Literal' from 'typing' (/usr/lib/python3.7/typing.py)
                        
                        During handling of the above exception, another exception occurred:
                        
                        Traceback (most recent call last):
                          File "/home/script/mex.py", line 38, in <module>
                            import paho.mqtt.client as mqtt
                          File "/usr/local/lib/python3.7/dist-packages/paho/mqtt/client.py", line 51, in <module>
                            from typing_extensions import Literal  # type: ignore
                        ModuleNotFoundError: No module named 'typing_extensions'
                        root@DietPi:/home/script#
                        
                        

                        also via:

                        root@DietPi:/home/script# pip install typing-extensions
                        
                        Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/
                        Collecting typing-extensions
                          Downloading https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.7.1-py3-none-any.whl (33 kB)
                        Installing collected packages: typing-extensions
                        Successfully installed typing-extensions-4.7.1
                        
                        
                        

                        nachinstalliert. dann mit folgendem Ergebnis:

                        root@DietPi:/home/script# python3 /home/script/mex.py
                        /home/script/mex.py:95: DeprecationWarning: Callback API version 1 is deprecated, update to latest version
                          client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1, "MEX")
                        
                        
                        spicer 1 Reply Last reply Reply Quote 0
                        • spicer
                          spicer @gjo last edited by spicer

                          @gjo
                          Diese Warnung ist ok. Die hab ich auch. Sollte eigentlich funktionieren so.
                          Funktioniert's denn?
                          Frage: Bist Du als root unterwegs, nicht als pi?

                          Edit:
                          Warnung ist nun weg. Code nutzt nun aktuelle Parameter 😉

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            gjo @spicer last edited by

                            @spicer
                            die Daten kommen an ... wie cool. Danke nochmal.
                            ja, auf dem Testsystem hatte ich s mir einfacher gemacht.

                            Thomas Braun 1 Reply Last reply Reply Quote 0
                            • spicer
                              spicer last edited by

                              V1.2 auf github

                              • DataReceived Punkt hinzugefügt
                              • paho-mqtt Versionsabfrage
                              1 Reply Last reply Reply Quote 0
                              • Thomas Braun
                                Thomas Braun Most Active @gjo last edited by Thomas Braun

                                @gjo sagte in Heizöl24 - MEX:

                                ja, auf dem Testsystem hatte ich s mir einfacher gemacht.

                                Das ist aber auch nur vermeintlich einfacher.
                                In der Realität ist es nämlich aufwändiger die Rechte richtig zu halten.
                                Und deswegen gilt halt: NIE root.

                                Die Meldung:

                                WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
                                

                                steht nämlich da auch nicht zum Spaß.

                                spicer 1 Reply Last reply Reply Quote 0
                                • spicer
                                  spicer @Thomas Braun last edited by

                                  @thomas-braun sagte in Heizöl24 - MEX:

                                  @gjo sagte in Heizöl24 - MEX:

                                  ja, auf dem Testsystem hatte ich s mir einfacher gemacht.

                                  Das ist aber auch nur vermeintlich einfacher.
                                  In der Realität ist es nämlich aufwändiger die Rechte richtig zu halten.
                                  Und deswegen gilt halt: NIE root.

                                  Die Meldung:

                                  WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
                                  

                                  steht nämlich da auch nicht zum Spaß.

                                  Jep. Dachte ich mir auch, dass das wegen dem root so ist 😉

                                  1 Reply Last reply Reply Quote 0
                                  • spicer
                                    spicer last edited by spicer

                                    V1.3 auch auf github.

                                    mex.py

                                    #!/usr/bin/python3
                                    
                                    ######################################################################################
                                    ###################################             V1.3               ###################
                                    ################################### MEX-Daten in ioBroker einlesen ###################
                                    ###################################    Benötigt den MQTT Adapter   ###################
                                    ###################################    (C) 2024 Daniel Luginbühl   ###################
                                    ######################################################################################
                                    
                                    ######################################### WICHTIGE INFOS #############################
                                    ################## Im ioBroker ist der MQTT Broker/Client Adapter zu installieren   ##
                                    ################## Einstellungen:                                                   ##
                                    ##################    IP: Server/Broker                                             ##
                                    ##################    Authentifizierungseinstellungen: Benutzer/Passwort definieren ##
                                    ################## ---------------------------------------------------------------- ##
                                    ##################                  Alles als User PI ausführen!                    ##
                                    ################## ---------------------------------------------------------------- ##
                                    ################## mex.py Script auf Rechte 754 setzen mit:                         ##
                                    ################## chmod 754 mex.py                                                 ##
                                    ################## Dieses Script per Cronjob alle 2 bis 4 Stunden ausführen:        ##
                                    ################## crontab -e                                                       ##
                                    ################## 0 */3 * * * /home/pi/mex.py          # Pfad ggf anpassen!        ##
                                    ################## ---------------------------------------------------------------- ##
                                    ################## Vorgängig zu installieren (auf Host, wo dieses Script läuft):    ##
                                    ##################    sudo apt install python3-requests                             ##
                                    ##################    pip3 install paho-mqtt                                        ##
                                    ##################    pip3 install typing-extensions                                ##
                                    ######################################################################################
                                    
                                    ######################################################################################
                                    ################################### Hier Einträge anpassen! ##########################
                                    
                                    username = "AAAAA@gmail.com"    # Deine Email Adresse bei HeizOel24
                                    passwort = "BBBBBBBBB"          # Dein Passwort bei HeizOel24
                                    
                                    broker_address = "192.168.1.50" # ioBroker IP, auf welchem der MQTT (Server) Adapter läuft
                                    mqtt_user = "uuuuuu"            # ioBroker MQTT User     (in Authentifizierungseinstellungen definiert)
                                    mqtt_pass = "pppppp"            # ioBroker MQTT Passwort (in Authentifizierungseinstellungen definiert)
                                    
                                    debug = False                   # True = Debug Infos auf die Konsole
                                    
                                    ######################################################################################
                                    ######################################################################################
                                    
                                    
                                    import requests
                                    import time
                                    import json
                                    import paho.mqtt.client as mqtt
                                    
                                    def mqtt_send(client, topic, wert):
                                        client.publish("MEX/" + topic, wert)
                                    
                                    def login():
                                        if debug:
                                            print('Login in...')
                                        global session_id
                                        url = "https://api.heizoel24.de/app/api/app/Login"
                                        newHeaders = {'Content-type': 'application/json'}
                                        reply = requests.post(url, json = { "Password" : passwort, "Username" : username}, headers=newHeaders)
                                    
                                        return_flag = False
                                        if reply.status_code == 200:
                                            if debug:
                                                print("Login OK")
                                            reply_json = json.loads(reply.text)
                                            if reply_json['ResultCode'] == 0:
                                                session_id = reply_json['SessionId']
                                                if debug:
                                                    print('Session ID: ' + session_id)
                                                return_flag = True
                                            else:
                                                if debug:
                                                    print('ResultCode nicht 0. Keine Session ID erhalten!')
                                        else:
                                            if debug:
                                                print('Login fehlgeschlagen! Heizoel24 Login Status Code: ' + str(reply.status_code))
                                        return return_flag
                                    
                                    def mex():  
                                        login_status = login()
                                        if login_status == False:
                                            return "error"
                                        if debug:
                                            print('Refresh sensor data cache...')
                                        url = 'https://api.heizoel24.de/app/api/app/GetDashboardData/'+ session_id + '/1/1/False'
                                        reply = requests.get(url)     
                                        if reply.status_code == 200:
                                            if debug:
                                                print("Daten wurden empfangen")
                                            sensor_data = reply
                                        else:
                                            if debug:
                                                print('Heizoel24 GetDashboardData Status Code: ' + str(reply.status_code))
                                            sensor_data = "error"   # Fehler. Keine Daten empfangen.
                                        return sensor_data
                                    
                                    def main():
                                        topic1 = ['SensorId', 'IsMain', 'CurrentVolumePercentage', 'CurrentVolume', 'NotifyAtLowLevel', 'NotifyAtAlmostEmptyLevel', 'NotificationsEnabled', 'Usage', 'RemainsUntil', 'MaxVolume', 'ZipCode', 'MexName', 'LastMeasurementTimeStamp', 'LastMeasurementWithDifferentValue', 'BatteryPercentage', 'Battery', 'LitresPerCentimeter', 'LastMeasurementWasSuccessfully', 'SensorTypeId', 'HasMeasurements', 'MeasuredDaysCount', 'LastMeasurementWasTooHigh', 'YearlyOilUsage', 'RemainingDays', 'LastOrderPrice', 'ResultCode', 'ResultMessage']
                                        topic2 = ['LastOrderPrice', 'PriceComparedToYesterdayPercentage', 'PriceForecastPercentage', 'HasMultipleMexDevices', 'DashboardViewMode', 'ShowComparedToYesterday', 'ShowForecast', 'ResultCode', 'ResultMessage']
                                        RemainsUntilCombined = ['MonthAndYear', 'RemainsValue', 'RemainsUnit']
                                    
                                        try:
                                            client = mqtt.Client("mex")
                                            if debug:
                                                print("paho-mqtt version < 2.0")
                                        except:
                                            client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, "mex")
                                            if debug:
                                                print("paho-mqtt version >= 2.0")
                                    
                                        if debug:
                                            print("---------------------")
                                            print("client:", client)
                                            print("---------------------")
                                    
                                        client.username_pw_set(mqtt_user, mqtt_pass)
                                        client.connect(broker_address)
                                    
                                        daten = mex()
                                        if daten == "error":
                                            if debug:
                                                print("Fehler. Keine Daten empfangen.")
                                            mqtt_send(client, "Items/DataReceived", False)
                                            client.disconnect()
                                            return
                                    
                                        daten = daten.json()
                                    
                                        if debug:
                                            print()
                                            print("JSON-Daten:")
                                            print("===========")
                                            print()
                                            print(daten)
                                            print()
                                    
                                        if debug:
                                            print("---------------------")
                                            print()
                                        for n in range(len(topic2)):
                                            if debug:
                                                print(topic2[n] + ":", daten[topic2[n]])
                                            mqtt_send(client, "PricingForecast/" + topic2[n], daten[topic2[n]])
                                    
                                        daten = daten["Items"]
                                        daten = daten[0]
                                    
                                        if debug:
                                            print("---------------------")
                                        for n in range(len(topic1)):
                                            if debug:
                                                print(topic1[n] + ":", daten[topic1[n]])
                                            mqtt_send(client, "Items/" + topic1[n], daten[topic1[n]])
                                        mqtt_send(client, "Items/DataReceived", True)
                                    
                                        daten3 = daten['RemainsUntilCombined']
                                    
                                        if debug:
                                            print("---------------------")
                                            print('RemainsUntilCombined:')
                                        for n in range(len(RemainsUntilCombined)):
                                            if debug:
                                                print(RemainsUntilCombined[n] + ":", daten3[RemainsUntilCombined[n]])
                                            mqtt_send(client, "RemainsUntilCombined/" + RemainsUntilCombined[n], daten3[RemainsUntilCombined[n]])
                                    
                                        client.disconnect()
                                    
                                    if __name__ == '__main__':   
                                        main()
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • spicer
                                      spicer last edited by spicer

                                      Ich wäre übrigens sehr empfänglich für Hilfe beim Erstellen eines ioBroker Adapters.
                                      Die Links
                                      https://iobroker.readthedocs.io/de/latest/development/adapter.html
                                      und
                                      https://www.codeconvert.ai/python-to-javascript-converter
                                      hab ich zwar, aber ohne Hilfe ist das doch etwas schwierig.
                                      Ich weiss nichtmal, wie ich meinem Code beibringe, Input- und Output vom/zum ioBroker zu senden/empfangen.
                                      Mit anderen Worten: Die Schnittstelle.
                                      Bin für jeden Rat dankbar.
                                      Totaler Anfänger im programmieren bin ich nicht.
                                      Jedoch Java = 0 Ahnung. Python sieht's anders aus (hoffentlich oben im Py-Script ersichtlich).
                                      Bin halt ein Basic & Assembler Kind aus den C64 bzw Atari Jahren ^^

                                      mcm1957 1 Reply Last reply Reply Quote 1
                                      • mcm1957
                                        mcm1957 @spicer last edited by

                                        @spicer

                                        Hier (aus Zeitgründen) nur eine ganz kurze Info:

                                        -) Am besten schaust du dir einen (eher einfachen) Adapter auf github mal an und versuchst zu verstehen was da steht.

                                        -) Ein Grundverständnis für javascript (das ist NICHT Java) ist hilfreich. Aber wenn du eine andere Sprache kannst, sollte das nicht das Problem sein.

                                        -) Für Testzwecke erstellst du am besten einen neuen Adapter mittels adapter creator.

                                        -) Testen tust du am besten mittels dev-server.

                                        Ich würde dir empfehlen dich in der telgramm Gruppe adapter-developer-starters anzumelden. Invite Links windest du auf www.iobroker.dev. Dort gibts sicher wen der dir mal ein wenig beim Start helfen kann und wird.

                                        P.S: Uns ja, die dokumentation ist (m.E.) eine der größten Baustellen / Schwachstellen von ioB. Wenns es da leite gibt die sowas gener schreiben sind sie sicher gern gesehen. (Viele Code-Entwickler schreiben ungern Dokumentaionen ...)

                                        1 Reply Last reply Reply Quote 0
                                        • xadox
                                          xadox last edited by xadox

                                          Das Script ließt den MEX direkt aus und der Adapter geht über den Heizöl24 Account?
                                          Bitte ignorieren wer lesen kann ist im Vorteil 😳

                                          spicer 1 Reply Last reply Reply Quote 0
                                          • spicer
                                            spicer @xadox last edited by spicer

                                            @xadox
                                            Für den ioBroker hab ich ja einen Adapter erstellt ( https://github.com/ltspicer/ioBroker.heizoel24-mex ) 😉
                                            Und hier ist die aktuelle Version vom Script: https://github.com/ltspicer/heizoel24.mex

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            928
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter heizöltank oilfox
                                            12
                                            37
                                            6237
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo