Afore + home assistant

Log z Mosquitto brokera:

s6-rc: info: service legacy-services successfully started
[13:35:54] INFO: Starting mosquitto MQTT broker...
2024-06-05 13:35:54: Warning: Mosquitto should not be run as root/administrator.
2024-06-05 13:35:54: mosquitto version 2.0.18 starting
2024-06-05 13:35:54: Config loaded from /etc/mosquitto/mosquitto.conf.
2024-06-05 13:35:54: Loading plugin: /usr/share/mosquitto/go-auth.so
2024-06-05 13:35:54:  ├── Username/password checking enabled.
2024-06-05 13:35:54:  ├── TLS-PSK checking enabled.
2024-06-05 13:35:54:  └── Extended authentication not enabled.
2024-06-05 13:35:54: Opening ipv4 listen socket on port 1883.
2024-06-05 13:35:54: Opening ipv6 listen socket on port 1883.
2024-06-05 13:35:54: Opening websockets listen socket on port 1884.
2024-06-05 13:35:54: mosquitto version 2.0.18 running
2024-06-05 13:35:54: New connection from 127.0.0.1:36350 on port 1883.
2024-06-05 13:35:54: Client <unknown> disconnected due to protocol error.
2024-06-05 13:35:55: New connection from 172.30.32.1:59554 on port 1883.
2024-06-05 13:35:55: New client connected from 172.30.32.1:59554 as mqtt-explorer-90f5a389 (p2, c1, k60, u'staszek').
[13:35:57] INFO: Successfully send discovery information to Home Assistant.
[13:35:58] INFO: Successfully send service information to the Supervisor.
2024-06-05 13:35:58: New connection from 192.168.1.119:46346 on port 1883.
2024-06-05 13:35:58: New client connected from 192.168.1.119:46346 as nodered_4f7918d4bf73aeb5 (p1, c1, k60, u'staszek').
s6-rc: info: service legacy-services: stopping
[11:36:03] INFO: Service restart after closing
2024-06-05 13:36:03: mosquitto version 2.0.18 terminating
2024-06-05 13:36:03: Saving in-memory database to /data//mosquitto.db.
[11:36:03] INFO: Service restart after closing
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/mosquitto.sh
[13:36:10] INFO: Setting up user staszek
[13:36:11] INFO: SSL is not enabled
cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0
cont-init: info: running /etc/cont-init.d/nginx.sh
cont-init: info: /etc/cont-init.d/nginx.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun mosquitto (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
s6-rc: info: service legacy-services successfully started
[13:36:13] INFO: Starting NGINX for authentication handling...
[13:36:14] INFO: Starting mosquitto MQTT broker...
2024-06-05 13:36:14: Warning: Mosquitto should not be run as root/administrator.
2024-06-05 13:36:14: mosquitto version 2.0.18 starting
2024-06-05 13:36:14: Config loaded from /etc/mosquitto/mosquitto.conf.
2024-06-05 13:36:14: Loading plugin: /usr/share/mosquitto/go-auth.so
2024-06-05 13:36:14:  ├── Username/password checking enabled.
2024-06-05 13:36:14:  ├── TLS-PSK checking enabled.
2024-06-05 13:36:14:  └── Extended authentication not enabled.
2024-06-05 13:36:14: Opening ipv4 listen socket on port 1883.
2024-06-05 13:36:14: Opening ipv6 listen socket on port 1883.
2024-06-05 13:36:14: Opening websockets listen socket on port 1884.
2024-06-05 13:36:14: mosquitto version 2.0.18 running
2024-06-05 13:36:14: New connection from 127.0.0.1:34418 on port 1883.
2024-06-05 13:36:14: Client <unknown> disconnected due to protocol error.
2024-06-05 13:36:15: New connection from 172.30.32.1:59874 on port 1883.
2024-06-05 13:36:15: New client connected from 172.30.32.1:59874 as mqtt-explorer-90f5a389 (p2, c1, k60, u'staszek').
[13:36:16] INFO: Successfully send discovery information to Home Assistant.
[13:36:17] INFO: Successfully send service information to the Supervisor.
2024-06-05 13:36:18: New connection from 192.168.1.119:44068 on port 1883.
2024-06-05 13:36:18: New client connected from 192.168.1.119:44068 as nodered_4f7918d4bf73aeb5 (p1, c1, k60, u'staszek').
2024-06-05 13:36:23: New connection from 172.30.32.1:56727 on port 1883.
2024-06-05 13:36:23: New client connected from 172.30.32.1:56727 as 6Z8geEy9f0F7i7LZ142bls (p2, c1, k60, u'staszek').
2024-06-05 13:36:34: New connection from 172.30.32.1:42023 on port 1883.
2024-06-05 13:36:34: New client connected from 172.30.32.1:42023 as 0QHsz5g5SXyDuqD1OZ0Q4z (p2, c1, k60, u'staszek').
2024-06-05 13:36:34: Client 0QHsz5g5SXyDuqD1OZ0Q4z disconnected.
2024-06-05 13:36:42: New connection from 172.30.32.1:38669 on port 1883.
2024-06-05 13:36:42: New client connected from 172.30.32.1:38669 as 55VweVEd471fWX83R2Qswy (p2, c1, k60, u'staszek').
2024-06-05 13:38:13: Client 6Z8geEy9f0F7i7LZ142bls has exceeded timeout, disconnecting.
2024-06-05 14:06:14: Saving in-memory database to /data//mosquitto.db.
2024-06-05 14:36:15: Saving in-memory database to /data//mosquitto.db.
2024-06-05 14:40:35: New connection from 172.30.32.1:48809 on port 1883.
2024-06-05 14:40:35: New client connected from 172.30.32.1:48809 as 4e5XyFe9GUMHY06ViX69Ix (p2, c1, k60, u'staszek').
2024-06-05 14:40:36: Client 4e5XyFe9GUMHY06ViX69Ix disconnected.
2024-06-05 14:56:24: Client 55VweVEd471fWX83R2Qswy closed its connection.
2024-06-05 14:56:41: New connection from 172.30.32.1:40163 on port 1883.
2024-06-05 14:56:41: New client connected from 172.30.32.1:40163 as 02IO1njmiYyjckPFsMKEgN (p2, c1, k60, u'staszek').
2024-06-05 15:06:16: Saving in-memory database to /data//mosquitto.db.
2024-06-05 15:36:17: Saving in-memory database to /data//mosquitto.db.
2024-06-05 15:40:01: Client nodered_4f7918d4bf73aeb5 disconnected.
2024-06-05 15:40:01: New connection from 192.168.1.119:40280 on port 1883.
2024-06-05 15:40:01: New client connected from 192.168.1.119:40280 as nodered_b2840be9ba911d2b (p1, c1, k60, u'staszek').
2024-06-05 15:40:33: Client nodered_b2840be9ba911d2b disconnected.
2024-06-05 15:40:33: New connection from 192.168.1.119:46792 on port 1883.
2024-06-05 15:40:33: New client connected from 192.168.1.119:46792 as nodered_f460909bc0e7394b (p1, c1, k60, u'staszek').
2024-06-05 16:06:18: Saving in-memory database to /data//mosquitto.db.
2024-06-05 16:36:19: Saving in-memory database to /data//mosquitto.db.
2024-06-05 17:06:20: Saving in-memory database to /data//mosquitto.db.
2024-06-05 17:36:21: Saving in-memory database to /data//mosquitto.db.
2024-06-05 18:06:22: Saving in-memory database to /data//mosquitto.db.
2024-06-05 18:36:23: Saving in-memory database to /data//mosquitto.db.
2024-06-05 19:06:24: Saving in-memory database to /data//mosquitto.db.

Mój NodeRed wygląda tak - npv/values pokazuje połączenie

[{"id":"4048fc1d9499fbe0","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"aec965478a8c4230","type":"http request","z":"4048fc1d9499fbe0","name":"get Inverter details","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":670,"y":260,"wires":[["09320119dc0ffcf2","b56a3d2709e7376e"]]},{"id":"09320119dc0ffcf2","type":"debug","z":"4048fc1d9499fbe0","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":890,"y":280,"wires":[]},{"id":"b56a3d2709e7376e","type":"function","z":"4048fc1d9499fbe0","name":"","func":"\nif (msg.payload.success == !false)\n{\nmsg.payload = {\n    \"Status\" : (msg.payload.dataList[51].value),\n    \"Current_power\" : Number(msg.payload.dataList[29].value),\n    \"PV1_DC_voltage\" : Number(msg.payload.dataList[12].value),\n    \"PV2_DC_voltage\" : Number(msg.payload.dataList[13].value),\n    \"PV1_DC_current\" : Number(msg.payload.dataList[14].value),\n    \"PV2_DC_current\" : Number(msg.payload.dataList[15].value),\n    \"Total_production\" : Number(msg.payload.dataList[31].value),\n    \"Daily_production\" : Number(msg.payload.dataList[32].value),\n    //\"Monthly_Production\" : Number(msg.payload.result.deviceWapper.dataJSON['1be']),\n    \"PV1_resistance\" : Number(msg.payload.dataList[43].value),\n    //\"PV2_resistance\" : Number(msg.payload.result.deviceWapper.dataJSON['1fr']),\n    \"Temperature\" : Number(msg.payload.dataList[49].value),\n    \"AC_Frequency\" : Number(msg.payload.dataList[25].value),\n    \"AC_voltage_1\" : Number(msg.payload.dataList[19].value),\n    \"AC_voltage_2\" : Number(msg.payload.dataList[20].value),\n    \"AC_voltage_3\" : Number(msg.payload.dataList[21].value),\n    \"AC_current_1\" : Number(msg.payload.dataList[22].value),\n    \"AC_current_2\" : Number(msg.payload.dataList[23].value),\n    \"AC_current_3\" : Number(msg.payload.dataList[24].value),\n    };\n}\nelse\n{\n    msg.payload = {\n    \"Status\" : \"Off Line\"\n    };\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":730,"y":340,"wires":[["1272698d442523bc","5818854079eedb12"]]},{"id":"5818854079eedb12","type":"mqtt out","z":"4048fc1d9499fbe0","name":"","topic":"npv/values","qos":"0","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"d8e9f488.943b28","x":910,"y":340,"wires":[]},{"id":"1272698d442523bc","type":"debug","z":"4048fc1d9499fbe0","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":910,"y":420,"wires":[]},{"id":"3c88f0e4dbefa1ed","type":"inject","z":"4048fc1d9499fbe0","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":80,"wires":[["1221e2bd7c64c57b"]]},{"id":"71868977.626ca8","type":"change","z":"4048fc1d9499fbe0","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":" https://globalapi.solarmanpv.com/device/v1.0/currentData?appId=xxxxxxxxxxxxxxxxxxxxxxxxx&language=en&='","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"deviceSn\":\"xxxxxxxxxxxxxx\"}","tot":"json"},{"t":"set","p":"method","pt":"msg","to":"POST","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":460,"y":240,"wires":[["aec965478a8c4230"]]},{"id":"dd21dc830a762432","type":"http request","z":"4048fc1d9499fbe0","name":"get login details","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":260,"y":160,"wires":[["27204297e567d676","0b320a493c5c6065"]]},{"id":"f893ced7423f8535","type":"debug","z":"4048fc1d9499fbe0","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":850,"y":200,"wires":[]},{"id":"1221e2bd7c64c57b","type":"change","z":"4048fc1d9499fbe0","name":"","rules":[{"t":"set","p":"url","pt":"msg","to":" https://globalapi.solarmanpv.com/device/v1.0/token?appId=3023092638521694&language=en&='","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"{\"appSecret\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"email\":\"xxxxxxxx@xxxxxxxxxxxxx.com.pl\",\"password\":\"3b3fce624092671349d4c842f5c5a0b16102e89e488aeb4a2686985194f6f486\"}","tot":"json"},{"t":"set","p":"headers","pt":"msg","to":"{\"content-type\":\"application/json\"}","tot":"json"},{"t":"set","p":"method","pt":"msg","to":"POST","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":100,"wires":[["dd21dc830a762432"]]},{"id":"27204297e567d676","type":"function","z":"4048fc1d9499fbe0","name":"","func":"\n\nmsg.headers = {\"Authorization\" :  msg.payload.token_type + ' ' + msg.payload.access_token, \n\"content-type\": \"application/json\"    \n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":220,"y":220,"wires":[["f893ced7423f8535","71868977.626ca8"]]},{"id":"0b320a493c5c6065","type":"debug","z":"4048fc1d9499fbe0","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":510,"y":160,"wires":[]},{"id":"d8e9f488.943b28","type":"mqtt-broker","name":"","broker":"192.168.1.119","port":"1883","clientid":"","autoConnect":true,"usetls":false,"compatmode":false,"protocolVersion":"3","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Nie wiem dlaczego w


Mam “brak urządzeń lub encji”
Chyba że znajdzie się dobra dusza i opisze proces dodawania falownika Afore do HA aby działało to poprawnie.

Aby zbytnio nie przedłużać - do momentu gdy nie uzyskasz prawidłowych danych do logowania do chmury nic z tego nie będzie.
Chyba, że sam je ukryłeś :slight_smile:

Te dane są do wypełnienia dla własnej instalacji.

W procesie NR również używasz iksów zamiast swoich.
Po co próbujesz to integrować w dwóch miejscach na raz?
… albo odczyt przez NR albo HA.

Jedynie co MOŻE? działać to odczyt ze strony administracyjnej loggera czyli te trzy encje.

W przypadku gdybyś jednak posiadał te dane - pokaż efekt, co widać jak na zrzucie gdy klikasz na inject ( masz wyłączone w tym nodzie cykliczny odczyt) ?

Kiedyś ktoś ze starych aisowo-homeassistantowych wyjadaczy (@bartik22 chyba?) dziwił się, że zalecam dla każdego klienta MQTT utworzyć inne dane uwierzytelniające (pary login+hasło, przy czym o loginach mówiących cokolwiek o tym z jakiego klienta przychodzi połączenie), a tu w tych logach powyżej jest świetny przykład tego po co tak zalecam…

Wszechogarniający user zbyszek (z credentialsami którego łączy się każdy klient do brokera), który jak mi podpowiada intuicja jest pewnie równocześnie danymi uwierzytelniającymi administratora i właściciela systemu (czyli użytkownik o nieograniczonej władzy, choć do połączeń mqtt zaleca się tworzenie użytkowników BEZ uprawnień admina…).

No i w tych logach widać właśnie taki totalny bałagan - niektóre klienty się jako-tako przedstawiają (dwie różne instancje NR? to tam kilka równoległych procesów się komunikuje z brokerem?), a inne nie, przy czym raczej są jakieś niepoprawnie skonfigurowane, bo się same rozłączają…
A gdyby każdy klient miał inne dane logowania to by można było identyfikować po loginie skąd pochodzą połączenia klientów o losowych nazwach…

Czuję w kościach, że w kliencie HA też było grzebane (widać, że broker jest addonem, więc w integracji MQTT raczej nie należało grzebać i wstawiać zbyszka tylko zostawić co fabryka dała…)

A to że w integracji MQTT nie ma nic, to może wnikać też z setki innych przyczyn, bo żeby cokolwiek się tam pojawiło to oprócz tego, że integracja musi być skonfigurowana prawidłowo (najprościej to zrobić nie grzebiąc przy jej dodawaniu, skoro broker Mosquitto jest addonem), to musi być spełniony jeden z 2 warunków

  • klienty których dane chcemy zobaczyć muszą mieć format telegramów dostosowany do MQTT discovery (by być wykrywane automagicznie w HA)
    i/lub
  • konfiguracja integracji sensorów MQTT w YAML musi być poprawna

Tam masz noda timestamp, w chwili obecnej jest tak ustawiony, że nie pracuje.
Kliknij w niego (kwadracik) to proces się raz uruchomi. Wtedy dopiero mi pokażesz zrzut i co wyświetli debug z prawej strony

Kolego @RobinI30 Tak ukryłem xxxxx moje dane, w NodeRed mam “connected” ale debug pokazuje " 6.06.2024, 07:14:41node: get login detailsmsg : string[28]

“non-http transport requested”"


Już mi ręce opadają.
Czyli jak dobrze rozumiem, wystarczą wpisy w configuration.yaml

- platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_now_p(\s|$)" | cut -d'"' -f 2
    name: power_solar
    unit_of_measurement: 'W'
    scan_interval: 10
  - platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_total_e(\s|$)" | cut -d'"' -f 2
    name: power_solar_total
    unit_of_measurement: 'kWh'
    scan_interval: 60
  - platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_today_e(\s|$)" | cut -d'"' -f 2
    name: power_solar_today
    unit_of_measurement: 'kWh'
    scan_interval: 60

Bez NodeReda i powinienem mieć odczyty z falownika ?

Teraz już jestem bliżej, po kliknięciu w “timestamp” mam informację w debug

Node-RED Deploy
6.06.2024, 09:44:25node: 0b320a493c5c6065
msg.payload : Object
object
msg: "auth token not found"
code: "2101017"
success: false
requestId: "e252859cbdce9ea7"
6.06.2024, 09:44:25node: f893ced7423f8535
msg : Object
object
_msgid: "96af8af654afd2d5"
payload: object
topic: ""
url: "https://globalapi.solarmanpv.com/device/v1.0/token?appId=xxxxxxxxxxxxx38521694&language=en&='"
headers: object
method: "POST"
statusCode: 200
responseUrl: "https://globalapi.solarmanpv.com/device/v1.0/token?appId=xxxxxxxxxxxx21694&language=en&=%27"
redirectList: array[0]
retry: 0
responseCookies: object
6.06.2024, 09:44:26node: 09320119dc0ffcf2
msg.payload : Object
{ msg: "auth token not found", code: "2101017", success: false, requestId: "dceb227d3c365777" }
6.06.2024, 09:44:26node: 1272698d442523bc
msg.payload : Object
object
Status: "Off Line"
This will update all Home Assistant nodes to the current schema. This is not required for the nodes to function.

Nodes with yellow labels need to be updated before they can be edited. This can be done by either opening each node individually in the Node-RED editor or running this command.

Attention: It is recommended to back up your flows before doing an update of all Home Assistant nodes.

Pomieszałem trochę - przeczytaj jeszcze raz mój poprzedni post, bo stary wykasowałem
To mi się nie podoba, jest problem z autoryzacją.

url: "https://globalapi.solarmanpv.com/device/v1.0/token?appId=xxxxxxxxxxxxx38521694&language=en&='"
headers: object
method: "POST"
statusCode: 200
responseUrl: "https://globalapi.solarmanpv.com/device/v1.0/token?appId=xxxxxxxxxxxx21694&language=en&=%27"

Czy w nodach change na pewno pozamieniałeś iksy na swoje dane? Przejrzyj dokładnie bo niektóre wpisy się nie mieszczą i ich w całości nie widać.

To jest ostateczność, bo odczytasz tylko te trzy parametry.
Jeśli to działa to już w encjach powinny być widoczne pod nazwą power_solar

Tych encji też nie mam w HA - po prostu już nie wiem o co chodzi :frowning:
Bo kiedy wykonuje komendę w Terminalu curl -s -u admin:admin http://192.168.1.149/status.html | grep -E “\webdata_now_p(\s|$)” | cut -d’"’ -f 2 to mi zwraca parametr
Tak sprawdzałem właśnie 2 razy i mam prawidłowe wpisy, xxxx usunięte.

//… prowadził ślepy kulawego… // jak na razie to pomysły mi się kończyły :slight_smile:
Nawet nie potrafię powiedzieć czy sensor command_line jest dobrze zdefiniowany.

Takie wpisy mam w configuration.yaml

 - platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_now_p(\s|$)" | cut -d'"' -f 2
    name: power_solar
    unit_of_measurement: 'W'
    scan_interval: 10
  - platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_total_e(\s|$)" | cut -d'"' -f 2
    name: power_solar_total
    unit_of_measurement: 'kWh'
    scan_interval: 60
  - platform: command_line  
    command: curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_today_e(\s|$)" | cut -d'"' -f 2
    name: power_solar_today
    unit_of_measurement: 'kWh'
    scan_interval: 60

template:
  sensor:
  - name: "solarmanlocal_production_daily"
    state: "{{ states('sensor.solarmanlocal_power_solar_total')}}"
    unit_of_measurement: kWh
    device_class: energy
    state_class: total_increasing
    unique_id: solarmanlocal_production_daily

Ale żaden sensor typu “power_solar” w encjach mi się nie pojawia, a to chyba najprostsza metoda uzyskania danych z falownika
Może to coś naprowadzi ?

…nie ma takiej encji, jak już to: sensor.power_solar_total

@RobinI30 Rozumiem, nie rozumiem dlaczego teraz NodeRed wyświetla że jest połączony a jest informacja - Status: “Off Line”

Pokaż … podłączony do czego? :slight_smile:

command_line ma nową składnię (raczej od dawna, bo nawet nie pamiętam od kiedy)

jakiś przykładowe sensory z mojej konfiguracji

command_line:

  - sensor:
      name: ACPI Temperature
      command: "cat /sys/class/thermal/thermal_zone0/temp"
      unit_of_measurement: "°C"
      value_template: '{{ value | multiply(0.001) | round(1) }}'

  - sensor:
      name: Zone0 Temperature
      command: "cat /sys/devices/virtual/thermal/thermal_zone0/temp"
      unit_of_measurement: "°C"
      value_template: '{{ value | multiply(0.001) | round(1) }}'

czyli to powinno być coś w tym guście, nie wiem co z cudzysłowami wewnątrz komendy (więc użyłem średników by ją objąć, ale trzeba poeksperymentować, bo nie pamiętam co robić w takim wypadku, może są zbędne, ale nie mam na czym testować)

command_line:
  - sensor:
      command: 'curl -s -u admin:admin http://192.168.1.149/status.html | grep -E "\webdata_now_p(\s|$)" | cut -d'"' -f 2'
      name: power_solar
      unit_of_measurement: 'W'
      scan_interval: 10

trzeba w ten sposób przerobić od razu wszystkie, bo w YAML nie może być mieszana stara i nowa składnia (nawet jeśli integracja jest w etapie przejściowym, ale podejrzewam, że od dawna nie jest i bezwzględnie składnia musi być nowa)

sensory template też moim zdaniem są zwalone, bo brakuje im spacji (ale by działał ten poniżej to najpierw źródłowa encja musi istnieć i działać)

template:
  - sensor:
    - name: "solarmanlocal_production_daily"
      state: "{{ states('sensor.solarmanlocal_power_solar_total')}}"
      unit_of_measurement: kWh
      device_class: energy
      state_class: total_increasing
      unique_id: solarmanlocal_production_daily

akurat dla template dokumentacja nadal dopuszcza starą składnię (ale wyżej i tak była nowa tylko z błędami)

W Node Red mam taką informację
image
a w Mqtt Explorer pojawiła się dodatkowa gałąż
image

Stara czy nowa - nie znam żadnej, bo nie używam :stuck_out_tongue_winking_eye:

@zbyszekm …te logi znaczą tyle, że dobrze masz skonfigurowane mqtt i NR.
Problem jest z połączeniem z chmurą https://globalapi.solarmanpv.com/ - może problem z tymi “seketami” lub to nie jest Twoja chmura? - brak danych z chmury status off-line.
Chociaż pierwszy etap autoryzacji przechodzi i access_token dostajesz.
Nie mam na czym przetestować, ktoś komu się udało musi Ci pomóc.

Tak myślałem, ta konfiguracja u mnie została z archaicznych czasów (ale te sensory są nadal niedostępne w żadnej innej integracji), jakkolwiek najwyraźniej musiałem zmienić składnię, a nie pamiętam kiedy, czyli to musiało być daaawno.

@RobinI30 uporałem się z tym problemem, moje przeoczenie brakowało dosłownie jednej literki przy 1.0.
Ruszyło krok dalej, i teraz mam taki komunikat
image

Skoro już wszystko wojenno/tajno wywaliłeś na forum :wink: to prześlij mi na priv twój folw może uda mi się uruchomić.

@zbyszekm dane już są - więc cierpliwości - będą z tego młode :slight_smile:

@zbyszekm

Zakomentuj Status (zaznaczony strzałką)
Inject i w MQTT powinny pojawić się dane, na razie będą głupoty.
Musisz dopasować numerki w kółeczkach tak aby w funkcji (po lewej) były zgodne z tymi w oknie debug. Dane rozwijasz trójkącikami. Prawa strona jest wzorcowa.

3 polubienia