Pompa Ciepła Elfin-EW11 proszę o pomoc w podpięciu do HA

Sprsun nie mają, trzeba dorzucić osobno.

Jeżeli jesteś zainteresowany tematem to jak będę miał chwilę wolnego czasu, mogę Ci przesłać co i jak, ale moje rozwiązanie wiąże się z wyciągnięciem API key z aplikacji.

1 polubienie

Też jestem zainteresowany rozwiązaniem gdzie działa chmura i HA. Czy możesz ( tak jak już prosił Blacksceener) udostępnić kod node red ? Planujesz sie podzielić info na github?

To znaczy temat nie jest dla każdego, ja użyłem http toolkit z zrootowanym telefonem (pinning certyfikatów) aby rozgryźć komunikację. Ponieważ klucze API są wysyłane w zapytaniach nie sprawdzałem czy można się dobrać do nich inaczej. W sumie jak ktoś bardziej się zna na Node Red to mogło by z tego wyjść coś fajnego.

Zaczynając od websocket in:


Po zalogowaniu serwer zwraca jsona z danymi, tu dla testu użyłem template a dane przekazuje do HA

Zawartość template:

Temperatura zadana: 
{{payload.attr_status.data.water_heat_set_temp}}
Temperatura w pompie: 
{{payload.attr_status.data.env_temp}}
Temperatura parownika:
{{payload.attr_status.data.0x0028}}
Temperatura kondensacji: 
{{payload.attr_status.data.0x0029}}
Napięcie 3 faz:
{{payload.attr_status.data.0x0021}}

Następnie websocket out:


Tu uzyskałem logowanie, oraz odczytałem dane jakie należy przesłać aby w odpowiedzi uzyskać wszystkie dane zawarte w tabelach:

Logowanie:

msg.payload = {
  "cmd": "Authenticate",
    "sn": 1,
    "domain": {
    "phoenix": "m2m.sprsun.com:8082&447",
    "file_upload_b": "m2m.chip-space.com:9001&446",
    "file_upload": "di-link.com:80&443",
    "file_download": "m2m.sprsun.com:80&443",
    "qr_url": "m2m.chip-space.com:9001&446",
    "api": "m2m.sprsun.com:80&8083"
},
    "app_info": {
    "app_key": "",
    "app_secret": "",
    "package_name": "com.sprsun.commonovs",
    "version": "1.8.3",
    "build_channel": "release",
    "app_name_en": "Heat Pump"
},
    "product_info": [
    {
        "product_key": "",
        "product_secret": ""
    }
],
    "user_info": {
    "uid": "",
    "token": ""
},
    "log_clear": false,
    "lan_disable": false,
    "diff_report": false,
    "targeting_push": true,
    "no_devStatus_after_DevList": true
}
return msg;

No i w tym miejscu pojawia się opisany wcześniej problem wszystkie puste wartości każdy musi sobie odczytać sam.

Z zapytaniem o szczegółowe dane jest podobnie:

msg.payload = 
{
  "cmd": "UserFormatDataQuery",
  "sn": 4,
  "token": "",
  "data_query": {
    "url": "DeviceDetail",
    "action": "select",
    "select": [
      {
        "table": "E_data_minute",
        "column": [
          "V",
          "A",
          "P",
          "E",
          "device_key",
          "create_at"
        ]
      }
    ],
    "where": [
      {
        "table": "E_data_minute",
        "column": [
          {
            "method": "",
            "name": "device_key",
            "option": "=",
            "value": ""
          },
          {
            "method": "and",
            "name": "create_at",
            "option": ">",
            "value": "2023-07-13 00:00:00"
          },
          {
            "method": "and",
            "name": "create_at",
            "option": "<=",
            "value": "2023-07-13 23:59:59"
          }
        ]
      }
    ],
    "order": {
      "desc": false,
      "table": "E_data_minute",
      "order_by": "create_at",
      "same_repeat": [
        "create_at"
      ]
    },
    "group": {},
    "addition": {}
  }
}
return msg;

Jak już się ogarnie http toolkit to jest prosto bo wystarczy skopiować sobie co jest wysyłane np. podczas kliknięcia przycisku wyłączenia pompy czy zmainy nastawy temperatury.

CZEŚĆ,
proszę o SOS, jestem tu nowy i korzystam z HomeAssistant od niedawna, więc moja wiedza jest niestety niewielka…
Udało mi się zintegrować solarassistant, wszystkie możliwe elementy inteligentnego domu itp., ale mam problem z pompą ciepła SPRSUN.
Zupełnie nie podobają mi się wartości, które EW11 wysyła poprzez Modbus (kupiłem drugi na Aliexpress, żeby zachować konfigurację oryginalnego).
Ustawiam te wartości na pompie ciepła i szukam ich na protokole MODBUS, żeby zobaczyć ich adresy - na próżno, jedne wychodzą, a inne nie. toto je nastavení na čerpadle:


když ale čtu modbus:

więc brakuje mi ustawionej temperatury (25°C) i temperatury zewnętrznej (3,5°C) - gdzie mogę znaleźć te wartości w logu MODBUS, co źle odczytuję? z drugiej strony usunę wejście (adres 14), wyjście (adres 18), aktualną temperaturę CWU (adres 15) … .

Teraz rozumiem, kluczem jest elchico.
ale jak mam wywołać ten adres w modbus Poll?


Lub jeśli odczytuję tylko do odczytu - gdzie mam ustawić inną temperaturę, pod jakim adresem?