sebilm / iobroker.myuplink Goto Github PK
View Code? Open in Web Editor NEWioBroker Adapter for myUplink.com for Nibe Heat Pumps
License: MIT License
ioBroker Adapter for myUplink.com for Nibe Heat Pumps
License: MIT License
The first version of the adapter is discussed here. Tests and problems and things that work well should be mentioned here.
It should be possible to assign names for systems, devices, categories and parameters in order to replace the existing names and IDs sent by the API in the object tree with new names. Optional categories could also be specified for parameters.
Hey,
do you allready have a collection of all writeable datapoints from the main menu?
I found a way to get the ID's when using DevTools. The Network section shows each datapoint action inside the Myuplink GUI.
If there is no collection, I would offer to collect the ones from my Nibe VVM225/F2120-8 and share it here.
I can imagine that it would be great for a lot of users, having an adapter-menu to create a set of datapoint's in different languages. I've checked the functionality with "set data" datapoint from your adapter with these ID's and it worked:
Name | Einheit | Menü | |
---|---|---|---|
47027 | Außentemperaturpunkt | °C | 1.9.8 |
47028 | Kurvenänderung | °C | 1.9.8 |
I think there is an hidden API part called internalapi.myuplink.com which is used for non offical API datapoints: https://internalapi.myuplink.com/v3/devices/***
BR, Armin
It should be possible to set parameters that can be set by the API.
Describe the bug
Seit dem 1.2. werden keine aktuellen Energiedaten von myuplink geliefert? Woran mag es liegen? In der Anlage (Service-Menü) werden aktuelle Werte angezeigt. Bin ich allein mit dem Problem? MyUplink Schuld, oder was im Adapter?
System: VVM500, F2120/12
To Reproduce
Beispiel (aus dem Response json):
{
"category": "Heat meter",
"parameterId": "44300",
"parameterName": "Heating, including int. add. heat",
"parameterUnit": "kWh",
"writable": false,
"timestamp": "2024-02-01T09:28:02+00:00",
"value": 6367.5,
"strVal": "6367.5kWh",
"smartHomeCategories": [],
"minValue": 0,
"maxValue": 999999.9,
"stepValue": 0.1,
"enumValues": [],
"scaleValue": "0.1",
"zoneId": null
},
Timestamp ist vom 1.2. - bei anderen Werten (z.B. Gradminuten) bekomme ich aktuelle Daten.
Expected behavior
Akutelle Energiedaten in den Objekten
Screenshots & Logfiles
Im Log steht nix.
Versions:
Additional context
Add any other context about the problem here.
Hi Seb, using the actual version from today download, it crashes frequently, every minute i would say. After a while, iobroker terminates the adapter permanently. Would you mind having a look, please?
This is the error log:
myuplink.0 | 2024-02-07 21:06:25.311 | error | Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n504 Gateway Time-out\r\nMicrosoft-Azure-Application-Gateway/v2\r\n\r\n\r\n" |
---|---|---|---|
myuplink.0 | 2024-02-07 21:06:25.310 | error | Error: Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n504 Gateway Time-out\r\nMicrosoft-Azure-Application-Gateway/v2\r\n\r\n\r\n" at MyUplinkRepository.checkError (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:101:18) at MyUplinkRepository.getFromMyUplinkAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:72:18) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async MyUplinkRepository.getDevicePointsAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:46:12) at async Myuplink.setSystemDeviceAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/main.js:264:30) at async /opt/iobroker/node_modules/iobroker.myuplink/build/main.js:214:9 |
myuplink.0 | 2024-02-07 21:06:25.308 | error | unhandled promise rejection: Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n504 Gateway Time-out\r\nMicrosoft-Azure-Application-Gateway/v2\r\n\r\n\r\n" |
myuplink.0 | 2024-02-07 21:06:25.307 | error | Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). |
myuplink.0 | 2024-02-07 21:06:25.303 | error | { "message": "Request failed with status code 504", "name": "AxiosError", "stack": "AxiosError: Request failed with status code 504\n at settle (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:1967:12)\n at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:3066:11)\n at IncomingMessage.emit (node:events:529:35)\n at endReadableNT (node:internal/streams/readable:1368:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\n at Axios.request (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:3877:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async MyUplinkRepository.getFromMyUplinkAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:63:24)\n at async MyUplinkRepository.getDevicePointsAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:46:12)\n at async Myuplink.setSystemDeviceAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/main.js:264:30)\n at async /opt/iobroker/node_modules/iobroker.myuplink/build/main.js:214:9", "config": { "transitional": { "silentJSONParsing": true, "forcedJSONParsing": true, "clarifyTimeoutError": false }, "adapter": [ "xhr", "http" ], "transformRequest": [ null ], "transformResponse": [ null ], "timeout": 45000, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN", "maxContentLength": -1, "maxBodyLength": -1, "env": {}, "headers": { "Accept": "application/json, text/plain, /", "user-agent": "iobroker.myuplink", "Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkI3NDEwMDI3NjJGQ0MzOTQ3OTA1RTA0QUIxREFBMjNGMjk4MzIzQ0ZSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6InQwRUFKMkw4dzVSNUJlQktzZHFpUHltREk4OCJ9.eyJuYmYiOjE3MDczMzYzNTQsImV4cCI6MTcwNzMzOTk1NCwiaXNzIjoiaHR0cHM6Ly9hcGkubXl1cGxpbmsuY29tIiwiYXVkIjoiQVBJLXYyIiwiY2xpZW50X2lkIjoiZTRiNWUwNDQtYjNlYy00OTg5LTllMjktODFkYzgyMTY4MWE1Iiwic3ViIjoiY2UzZDUyMzEtMzYwMy00NGFmLWE3MjktMDhkOTJiZDZlZmYxIiwianRpIjoiRDg0MDNCNDM2NUQwNEJCQTU0NjlDMDlCREMxMkRDMEEiLCJpYXQiOjE3MDczMzYzNTQsInNjb3BlIjpbIlJFQURTWVNURU0iLCJXUklURVNZU1RFTSJdfQ.vGSuImcqJz2-zJ8xxfEmk1P-0Xdh4Z7t1d0EXbYcYBN5yOeAqxvamqMzGF8E_fxNq4Ra9IGJlPwyINjvQhdc4PGa-zF9NcIa7RtZspKWCz04hEDfV6DdQIi98zW69nhJ9lZINBCOnOn0igNBeSY2lr9NFHyDHM1HjtGsMhrCSGwIZDoXss_rIGgw3Qa-kSvG-Tq0ilVvKp7EioyVm1P-PSiGuTSv61_O1mV5l44Dy4YuOgMkFEp0aPRlnL_LqnXlFP5oCq5cc5D0GVBWbu8SO1XQWJDubh76idbwf3lQo0HEyyUEFQTCbAuz9oFHhz66xsOUUNWKYOSzYlKww22RUQ", "Accept-Language": "en", "Accept-Encoding": "gzip, compress, deflate, br" }, "baseURL": "https://api.myuplink.com", "method": "get", "url": "/v3/devices/emmy-r-104783-20240205-06722520297565-68-27-19-29-fa-12/points" }, "code": "ERR_BAD_RESPONSE", "status": 504} |
myuplink.0 | 2024-02-07 21:06:25.297 | error | error from /v3/devices/emmy-r-104783-20240205-06722520297565-68-27-19-29-fa-12/points |
myuplink.0 | 2024-02-07 21:05:54.128 | info | Adapter started. |
myuplink.0 | 2024-02-07 21:05:54.088 | info | Starting adapter. |
myuplink.0 | 2024-02-07 21:05:54.048 | info | starting. Version 0.7.0 (non-npm: sebilm/ioBroker.myuplink) in /opt/iobroker/node_modules/iobroker.myuplink, node: v18.18.2, js-controller: 5.0.17 |
Genau, was ich wieder gebraucht habe.
Wenn mir beim Betrieb was auffällt, melde ich mich.
Ging bei mir auf Anhieb, trotz das ich zuerst die CallBack vergessen hatte.
Datenpunkte ändern läuft bei mir auch.
alles bis jetzt super.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.