👉🏻 Blog 👈🏻
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13d92e3699db trafex/nefiteasy-http-server "npm start" 2 minutes ago Up 3 seconds 0.0.0.0:3000->3000/tcp admiring_lalande MacBook-Pro-van-Pieter-2:~ pieterdeboer$
MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13d92e3699db trafex/nefiteasy-http-server "npm start" 18 minutes ago Up 6 minutes 0.0.0.0:3000->3000/tcp admiring_lalande MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker run -d -p 3000:3000 -e "NEFIT_SERIAL_NUMBER=xxx" -e "NEFIT_ACCESS_KEY=xxx" -e "NEFIT_PASSWORD=xxx" trafex/nefiteasy-http-server 65eead063e4219674c83a9aa7352f35241d71f7cb83ee84b2b185a59bff4222c docker: Error response from daemon: failed to create endpoint berserk_galileo on network bridge: Bind for 0.0.0.0:3000 failed: port is already allocated. MacBook-Pro-van-Pieter-2:~ pieterdeboer$
[ Voor 51% gewijzigd door poeterdebier op 19-02-2016 15:45 ]
kraades schreef op donderdag 18 februari 2016 @ 18:15:
Probeer eens een andere poort met:docker run -d -p 12345:3000 -e "NEFIT_SERIAL_NUMBER=<serial number>" -e "NEFIT_ACCESS_KEY=<accesskey>" -e "NEFIT_PASSWORD=<password>" trafex/nefiteasy-http-server
Hierna kun je de server uittesten met:
curl http://localhost:12345/bridge/ecus/rrc/uiStatus
👉🏻 Blog 👈🏻
MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker kill 13d92e3699db 13d92e3699db MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker run -d -p 45031:3000 -e "NEFIT_SERIAL_NUMBER=xxxxxx" -e "NEFIT_ACCESS_KEY=xxxxxxxx" -e "NEFIT_PASSWORD=xxxxxxxxxx" trafex/nefiteasy-http-server a979586a275d9001e47e3a9a7548e73482c54cb8aa12166a283bf1aae4ae9358 MacBook-Pro-van-Pieter-2:~ pieterdeboer$ curl http://localhost:45031/bridge/ecus/rrc/uiStatus curl: (7) Failed to connect to localhost port 45031: Connection refused MacBook-Pro-van-Pieter-2:~ pieterdeboer$
[ Voor 3% gewijzigd door ThinkPad op 20-02-2016 16:09 . Reden: Acces key & password eruit gehaald, even opletten volgende keer om misbruik te voorkomen! ]
docker logs a979586a275d9001e47e3a9a7548e73482c54cb8aa12166a283bf1aae4ae9358
MacBook-Pro-van-Pieter-2:~ pieterdeboer$ docker logs a979586a275d9001e47e3a9a7548e73482c54cb8aa12166a283bf1aae4ae9358 npm info it worked if it ends with ok npm info using npm@2.14.12 npm info using node@v4.3.0 npm info prestart nefiteasy-http-server-docker@1.0.0 npm info start nefiteasy-http-server-docker@1.0.0 > nefiteasy-http-server-docker@1.0.0 start /usr/src/app > /usr/src/app/node_modules/.bin/easy-server --host=0.0.0.0 HTTP server listening on http://0.0.0.0:3000 MacBook-Pro-van-Pieter-2:~ pieterdeboer$
http://superuser.com/ques...ames-on-mac-os-x-yosemite
👉🏻 Blog 👈🏻
Ik heb je post even bewerkt, de acces key, password en serial er even uitgesloopt. Dit topic is door iedereen ter wereld te lezen, dus let erop dat je deze gegevens er volgende keer even uitstript, om misbruik van je account te voorkomen
Zal het ook even in de topicwaarschuwing zetten.
[ Voor 6% gewijzigd door ThinkPad op 20-02-2016 16:11 ]
Versie 0.6
- Connectie probeert zichzelf te herstellen
- Als connectie verloren gaat word niet meer het rode kruis + temperatuur door elkaar heen getoond
- Wachtwoord word nu encrypted opgeslagen (verzoekje)
http://www.megafileupload.com/68ew/EasyforWindows.zip
Mess with the best, die like the rest
Oh vet! Die re-connect werkt iets te goed...ThaStealth schreef op zondag 21 februari 2016 @ 09:07:
Kleine update vandaag:
Versie 0.6
- Connectie probeert zichzelf te herstellen
- Als connectie verloren gaat word niet meer het rode kruis + temperatuur door elkaar heen getoond
- Wachtwoord word nu encrypted opgeslagen (verzoekje)
http://www.megafileupload.com/68ew/EasyforWindows.zip
Als ik eerst de windows app opstart en daarna de iOS dan zie ik even een rood kruis en direct weer opnieuw verbinden.
De iOS app vind dit niet leuk... Deze blijft vrijwel direct na het opstarten hangen en krijg na een paar seconden een melding dat er geen verbinding gemaakt kan worden.
Ter info.kraades schreef op woensdag 27 januari 2016 @ 22:10:
Ik weet niet precies wat je met "package store" bedoelt maar ik ga ervan uit dat je de Synology package (spk) uit de repository van SynoCommunity bedoelt. Deze bevat een te oude versie van node nl. v0.x en je hebt min. v4.x nodig voor de easy http server.
Ik zag dat er nu ook een Synology Node.js V4 package beschikbaar is. In ieder geval op DSM 6. Ik neem aan voor alle Synology modellen.
👉🏻 Blog 👈🏻
Zou je deze opnieuw kunnen uploaden? Lijkt erop dat deze werd verwijderd vanwege inactiviteit.ThaStealth schreef op zondag 21 februari 2016 @ 09:07:
Kleine update vandaag:
Versie 0.6
- Connectie probeert zichzelf te herstellen
- Als connectie verloren gaat word niet meer het rode kruis + temperatuur door elkaar heen getoond
- Wachtwoord word nu encrypted opgeslagen (verzoekje)
http://www.megafileupload.com/68ew/EasyforWindows.zip
Ben toevallig hier terecht gekomen door te zoeken op "wa2-mz36-qrmzh6.bosch.de"... en wat een verademing :-)
Wegens gebreken aan een Windows Mobile/Phone (of UWP) app was ik eigenlijk zelf reeds een poos aan de slag om mijn CV aan of uit te kunnen schakelen vanop mijn Lumia en PC. De slimme thermostaat wordt in België onder een andere naam, Junkers, verkocht.
Mess with the best, die like the rest
Zag in je eerdere posts dat je de code via Github zou delen? Zijn die intenties er nog?
Dit zou misschien een boost kunnen bieden voor het ontwikkelen van een UWP app. Ben in ieder geval bereidt er zelf aan mee te werken. Wil de basisfuncties in ieder geval zo snel mogelijk op mijn mobiel krijgen. Bij Bosch, Junkers & Nefit lijkt er jammer genoeg weinig animo te zijn hiervoor.
Jij was beslist onderstaande info ook al tegengekomen tijdens je zoektochten?Djiny schreef op vrijdag 01 april 2016 @ 13:58:
Waarvoor dank!
Zag in je eerdere posts dat je de code via Github zou delen? Zijn die intenties er nog?
Dit zou misschien een boost kunnen bieden voor het ontwikkelen van een UWP app. Ben in ieder geval bereidt er zelf aan mee te werken. Wil de basisfuncties in ieder geval zo snel mogelijk op mijn mobiel krijgen. Bij Bosch, Junkers & Nefit lijkt er jammer genoeg weinig animo te zijn hiervoor.
http://blog.rtwilson.com/...rmostat-in-python-part-1/
https://github.com/robintw/pywavethermo
Testing, one, two ...
Met de php-versie is dit prima te doen...hoe zou je het gasverbruik willen zien? vanaf 1 januari. dagverbruik of iets anders?knights16 schreef op dinsdag 29 maart 2016 @ 21:35:
Is er hier toevallig nog iemand die wellicht het gas verbruik inzichtelijk kan worden icm domoticz?
When life gives you lemons, start a battery factory
Pas vandaag, een aantal hits onder deze.hardware-lover schreef op vrijdag 01 april 2016 @ 15:01:
[...]
Jij was beslist onderstaande info ook al tegengekomen tijdens je zoektochten?
http://blog.rtwilson.com/...rmostat-in-python-part-1/
https://github.com/robintw/pywavethermo
In eerste instantie was ik gefocust op de merknaam Junkers en Windows Phone/Mobile. Blijkt nu dat dezelfde thermostaat onder een aantal merknamen wordt aangeboden, dus dat verbreedt de mogelijkheden.
Had hier de Android app draaien via Andyroid, enerzijds om mijn thermostaat te kunnen beheren, anderzijds om op die manier traffic te sniffen met Wireshark.
Verder ook de Junkers android APK gedecompiled om het één en ander uit te zoeken. Aan programmeren zelf was ik nog niet gekomen. Dat laatste zal nu wel in een stroomversnelling geraken
Wat bedoel je met de php versie? Ik zelf draai de neift easy http server die aangesloten is op do domoticz.KabouterSuper schreef op vrijdag 01 april 2016 @ 18:04:
[...]
Met de php-versie is dit prima te doen...hoe zou je het gasverbruik willen zien? vanaf 1 januari. dagverbruik of iets anders?
Het mooiste zou ik vinden dat het dagelijks verbruik wordt gelogged zodat domoticz hier zelf totalen van kan maken per maand. Meest ideale zou zijn om een verschil aan te brengen in het gasverbruiker voor het warm water en het reguliere gasverbruik.
Ik draai zelf een php-versie op mijn synology, die de data doorsluist naar domoticz (ook op mijn synology). De nefit easy http server draai ik zelf niet, dus daar kan ik je niet bij helpen.knights16 schreef op zondag 03 april 2016 @ 12:22:
[...]
Wat bedoel je met de php versie? Ik zelf draai de neift easy http server die aangesloten is op do domoticz.
Het mooiste zou ik vinden dat het dagelijks verbruik wordt gelogged zodat domoticz hier zelf totalen van kan maken per maand. Meest ideale zou zijn om een verschil aan te brengen in het gasverbruiker voor het warm water en het reguliere gasverbruik.
Mocht je zelf willen klussen: je moet eerst het aantal records ophalen via /ecus/rrc/recordings/gasusagePointer
Dit vertaal je naar een paginanummer mbv <page>=ceil(<records>/32).
Daarna kan je met /ecus/rrc/recordings/gasusage?page=<page>
het (dagelijkse) gasverbruik ophalen. HW is water, CH is centrale verwarming.
Vervolgens moet je de data nog verwerken in Domoticz. Ik heb dit zelf geprobeerd, maar zit met het probleem dat de dagelijkse standen worden opgeteld. Omdat ik elke 5 minuten draai, heb ik een gigantisch verbruik. Heeft iemand ervaring hoe je een virtual sensor moet instellen om het dagverbruik goed te verwerken?
When life gives you lemons, start a battery factory
https://www.wetransfer.co...5e6920160405190346/eec558
Ja, ik wil de sources nog steeds een keer naar GitHub uploaden, ik moet echter even de tijd vinden om het e.e.a. af te ronden (zit midden in een verbouwing....)
Mess with the best, die like the rest
bedankt!ThaStealth schreef op dinsdag 05 april 2016 @ 21:06:
Sorry voor de vertraging, ik heb hem nogmaals geupload maar dit keer naar Wetransfer, hopelijk blijft deze wat langer
https://www.wetransfer.co...5e6920160405190346/eec558
Ja, ik wil de sources nog steeds een keer naar GitHub uploaden, ik moet echter even de tijd vinden om het e.e.a. af te ronden (zit midden in een verbouwing....)
Ik krijg de client van ThaStealth trouwens niet aan het werk, mijn wachtwoord lijkt het niet te doen

I am not a number, I am a free man! Geld over? Check m'n V&A
Wachtwoord misschien langer dan 10 tekens? Of vreemde tekens?Kecin schreef op maandag 11 april 2016 @ 14:17:
Sinds deze week ook IFTTT ondersteuning! Hiephoi!
Ik krijg de client van ThaStealth trouwens niet aan het werk, mijn wachtwoord lijkt het niet te doen
When life gives you lemons, start a battery factory
Nee, geloof het niet. Krijg wel de volgende error popup:KabouterSuper schreef op maandag 11 april 2016 @ 14:21:
[...]
Wachtwoord misschien langer dan 10 tekens? Of vreemde tekens?
Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.
Object reference not set to an instance of an object.
[dan kan ik klikken op details:]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
| See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at DigitalThermostat.FrmMain.<Start>d__24.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state) ************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll ---------------------------------------- Easy Assembly Version: 0.0.6.0 Win32 Version: 0.0.6.0 CodeBase: file:///C:/Users/----/Downloads/EasyforWindows/Easy.exe ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34251 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34238 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- NefitSharp45 Assembly Version: 0.0.1.0 Win32 Version: 0.0.1.0 CodeBase: file:///C:/Users/-------/Downloads/EasyforWindows/NefitSharp45.DLL ---------------------------------------- System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- agsXMPP Assembly Version: 1.1.1.0 Win32 Version: 1.1.1.0 CodeBase: file:///C:/Users/---------/Downloads/EasyforWindows/agsXMPP.DLL ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box. |
Het gaat om Windows 7 64-bit
I am not a number, I am a free man! Geld over? Check m'n V&A
Mmm, klinkt vaag. Misschien heeft ThaStealth een idee.
Overigens, ik heb het gasverbruik redelijk aan de praat in domoticz via php ....ik zal nog even een paar dagen draaien voordat ik het op het wereld wijde web gooi. Helaas lukt het nog niet om het verbruik netjes te splitsen in water en cv, vanwege alle fratsen/beperkingen van nefit en domoticz. Wat de ene kant kan leveren, kan de andere kant weer niet interpreteren en andersom....heel frustrerend. @nefit: als jullie meelezen, dm even, dan leg ik graag uit wat ik graag zou willen uitlezen uit de easy.
Als er fans zijn, laat het dan even weten via dm, dan mag je meetesten.
When life gives you lemons, start a battery factory
ThaStealth schreef op dinsdag 05 april 2016 @ 21:06:
Sorry voor de vertraging, ik heb hem nogmaals geupload maar dit keer naar Wetransfer, hopelijk blijft deze wat langer
https://www.wetransfer.co...5e6920160405190346/eec558
Ja, ik wil de sources nog steeds een keer naar GitHub uploaden, ik moet echter even de tijd vinden om het e.e.a. af te ronden (zit midden in een verbouwing....)
Wij lezen mee hoorKabouterSuper schreef op maandag 11 april 2016 @ 16:04:
[...]
Mmm, klinkt vaag. Misschien heeft ThaStealth een idee.
Overigens, ik heb het gasverbruik redelijk aan de praat in domoticz via php ....ik zal nog even een paar dagen draaien voordat ik het op het wereld wijde web gooi. Helaas lukt het nog niet om het verbruik netjes te splitsen in water en cv, vanwege alle fratsen/beperkingen van nefit en domoticz. Wat de ene kant kan leveren, kan de andere kant weer niet interpreteren en andersom....heel frustrerend. @nefit: als jullie meelezen, dm even, dan leg ik graag uit wat ik graag zou willen uitlezen uit de easy.
Als er fans zijn, laat het dan even weten via dm, dan mag je meetesten.
Als je al met gasverbruik bezig bent, dan zou je al op de rest interface warmwater en cv verbruik moeten krijgen. Tegen welk probleem loop je concreet aan? Wellicht dat ik kan helpen met informatie.
“An elephant is a mouse with an operating system”
Ik heb een werkende versie klaargezet (zelfde locatie als de vorige versie). De uitdaging zat in het volgende:Elephtera schreef op maandag 02 mei 2016 @ 06:57:
[...]
Wij lezen mee hoor![]()
Als je al met gasverbruik bezig bent, dan zou je al op de rest interface warmwater en cv verbruik moeten krijgen. Tegen welk probleem loop je concreet aan? Wellicht dat ik kan helpen met informatie.
Domoticz verwacht een totaalstand op de dag van verbruik. Echter, de easy levert dagstanden van water en cv de dag erop. Kortom, een dag te laat en niet opgeteld. De easy geeft wel een actuele stand door van water en cv samen, maar alleen als jaar totaal. Dus ook niet zomaar bruikbaar.
Wat ik nu doe is de hele historie langslopen, en een totaal maken tot eind vorig jaar (ik doe het iets slimmer dan dat). Vervolgens tel ik daar de actuele jaarstand bij op. Maar als iemand een goed idee heeft, dan hou ik me aanbevolen! En wellicht is er iemand die dat kan implementeren in nodejs.
En mocht Nefit meelezen: Zouden jullie in de REST Domoticz interface willen maken met de totaal gasverbruiken?
When life gives you lemons, start a battery factory
Anoniem: 671112
ik heb er nog een implementatie bij gemaakt, in c voor unix-achtigen [1].
Volgens mij was die er nog niet...
Groet,
Jeroen
[1] zie https://github.com/jhofstee/nefit-easy-c
Anoniem: 671112
Heeft één van jullie al serieus naar de security gekeken / een
checklist gemaakt voor client / server checks? libstrophe heeft
bijvoorbeeld een leuk vlaggetje, XMPP_CONN_FLAG_MANDATORY_TLS en
als je die niet zet kan een man in de middle attack de advertisment
van tls gewoon weglaten.
Een checklist / test lijkt me daarom wel handig... En als jullie dat al gedaan
hebben nog handiger natuurlijk
Dit project laat veel positieve vorderingen zien. Vooral dat het wellicht mogelijk word/is(?) om direct met de Easy te spreken i.p.v. via de backend van Bosch. Nu lees ik hier niet echt veel meer over. Wat is hiervan de huidige status? Werkt de huidige implementatie al met een Easy die het internet niet kan bereiken?
Groeten,
Denk het niet, vind ik zelf ook jammer. Ben nogal wantrouwig tegen externe data opslag.nighthunter schreef op zondag 03 juli 2016 @ 21:32:
Hi,
Dit project laat veel positieve vorderingen zien. Vooral dat het wellicht mogelijk word/is(?) om direct met de Easy te spreken i.p.v. via de backend van Bosch. Nu lees ik hier niet echt veel meer over. Wat is hiervan de huidige status? Werkt de huidige implementatie al met een Easy die het internet niet kan bereiken?
Groeten,
brightvalve in "Nefit Easy: XMPP protocol ontcijferen"
Zie hier: brightvalve in "Nefit Easy: XMPP protocol ontcijferen"niki_lauda schreef op zondag 03 juli 2016 @ 22:14:
Denk het niet, vind ik zelf ook jammer. Ben nogal wantrouwig tegen externe data opslag.
brightvalve in "Nefit Easy: XMPP protocol ontcijferen"
Er wordt extern geen data opgeslagen. (wat niet betekend dat dat nooit gaat gebeuren maar op dit moment wordt alle data alleen in het apparaat zelf opgeslagen)
Nope, heb ik niet naar gekeken. Mijn client-checks zijn minimaal. Ik loop gewoon de standaard communicatie langs tussen client en server, zonder me echt te bekommeren om mitm attacks.Anoniem: 671112 schreef op maandag 06 juni 2016 @ 20:42:
KabouterSuper / brightvalve,
Heeft één van jullie al serieus naar de security gekeken / een
checklist gemaakt voor client / server checks? libstrophe heeft
bijvoorbeeld een leuk vlaggetje, XMPP_CONN_FLAG_MANDATORY_TLS en
als je die niet zet kan een man in de middle attack de advertisment
van tls gewoon weglaten.
Een checklist / test lijkt me daarom wel handig... En als jullie dat al gedaan
hebben nog handiger natuurlijk
When life gives you lemons, start a battery factory
Ik heb je php code gebruikt die je een paar weken geleden hier gepost hebt. Deze werkt goed.
Ik gebruik de upload nefitDomoticz alleen het gasverbruik van het verleden klopt niet..
zoals je zelf ook aangeeft op zondag 03 april 2016 13:22
ziet er nu zo uit dat ik dagelijks 185.000 m3 gas verbruik...
Heb je de code nog geüpdate? of heb je nog tips...
[ Voor 24% gewijzigd door kwiet op 01-08-2016 16:33 ]
Die zou ik ook graag willen gebruiken/testen. Dank alvastkwiet schreef op zondag 31 juli 2016 @ 14:23:
KabouterSuper
Ik heb je php code gebruikt die je een paar weken geleden hier gepost hebt. Deze werkt goed.
Ik gebruik de upload nefitDomoticz alleen het gasverbruik van het verleden klopt niet..
zoals je zelf ook aangeeft op zondag 03 april 2016 13:22
ziet er nu zo uit dat ik dagelijks 185.000 m3 gas verbruik...
Heb je de code nog geüpdate? of heb je nog tips...
Als ik index.php opstart krijg ik geen waarden ingevuld. Druk ik op "handbediening" krijg ik een error, Änswer Not Retrieved correctly. 400 Bad Request
Gebruik ik command.php zie ik vaak niets, maar soms krijg ik : 2016-08-19 21:28:52 [ERROR]: Answer not retrieved correctly. Response:HTTP/1.0 400 Bad Request voor bijvoorbeeld /ecus/rcc/homeentrancedetection/userprofile.
De meeste commandos vanuit command.php geven trouwens helemaal geen response, hoewel er wel iets lijkt te gebeuren.
Iemand een idee wat hier het geval zou kunnen zijn? Moet er een poort open o.i.d.
(Ik wil trouwens dit script gebruiken om den MYSQL database te vullen en zien of ik met die gegevens wat kan in combinatie met de slimme meter en zonnepaneel gegevens die ik daar al opsla).
bvd
Piet Smits
(Update: Ik was ervan overtuigd dat ik het goede wachtwoord had gebruikt. Toen ik echter een tweede telefoon van de app wilde voorzien, kwam ik erachter dat ik dat toch fout had. Inmiddels werkt alles naar behoren, en kan ik aan de slag om de data in de database te gaan zetten)
[ Voor 13% gewijzigd door pjsmits op 30-08-2016 12:04 ]
Ik heb toevallig gister nog de domoticz versie van dit systeem gebruikt, werkt heel goed. Dit was het programma dat ik had: https://github.com/robertklep/nefit-easy-http-serverDr.Ed schreef op zaterdag 17 september 2016 @ 23:04:
Ergens een host waar dit progje nog is te vinden? Zou er zeer graag eens naar willen kijken.
Ed
Waren ook nog een aantal alternatieven, die staan op de oude pagina
| Cowsmology | Met een hamer past alles, met ducktape plakt alles |
Maar mijn interesse gaat wat meer uit naar de Windows versie, en die linkjes zijn helaas dood.
Misschien t.z.t de Rpi maar eens aan het werk zetten.
Ed
De Windows software is nog wel beschikbaar op de Facebookpagina...
https://www.facebook.com/groups/NefitEasyUsersGroup/
Ed
De connectie tussen mijn Thermostaat / Ketel / Lan-module lijkt op dezelfde manier te gebeuren als de Nefit. Beide zijn dochtermerken van Bosch. Daarnaast lijkt Junkers een identieke thermostaat als de Nefit te hebben (http://www.junkers-shop.b...n/junkers-control-ct-100/) Alhoewel het bij mij over een andere thermostaat gaat (de FR-120 in combinatie met de MB Lan 2 module)
De communicatie verloopt ook via XMPP, en de endpoints komen overeen tussen mijn gesnifte packets en de github eerder vernoemd.
Het hoofddoel wat ik wil bereiken is een simpele integratie met IFTTT (zet verwarming aan op X graden, zet verwarming uit)
Ik zet mijn berichtje hier neer in het geval anderen via google dit vinden en we misschien ook een reverse engineering van de API kunnen doen. Ik doe alvast een aantal pogingen.
Alvast bedankt voor het geleverd werk met de Nefit Easy, dit zal zeker en vast van pas komen.
Anoniem: 825541
Anoniem: 749449
Ik ben daar ook naar op zoek. Je kan zelfs homewizard laten bepalen op buiten temperatuur en dat het binnen warmer word zonder dat de ketel aanstaat hij op de openhaard functie zou moeten overschakelen om de andere vertrekken te verwarmen.Anoniem: 825541 schreef op zaterdag 08 oktober 2016 @ 15:00:
Weet iemand het commando (via curl) om de open haard functie aan/uit te zetten? Hier is vaak de woonkamer warm, rest van huis koud. Door de radiator thermostaten in de woonkamer dan via homewizard op +/- 20 te zetten (draadloos), en dan de easy op open haard stand via rpi/HW, kan ik soort van ruimte gestuurd stoken.
https://github.com/robert...re/wiki/List-of-endpoints
👉🏻 Blog 👈🏻
Anoniem: 749449
Kan iemand met uitleggen als ik alleen de status van de fire place active will pushen hoe dat te doen? via uiStatus krijg je alle statussen terug namelijk.Anoniem: 749449 schreef op zaterdag 15 oktober 2016 @ 17:39:
[...]
Ik ben daar ook naar op zoek. Je kan zelfs homewizard laten bepalen op buiten temperatuur en dat het binnen warmer word zonder dat de ketel aanstaat hij op de openhaard functie zou moeten overschakelen om de andere vertrekken te verwarmen.
Voor de openhaardfunctie moet je het endpoint /ecus/rrc/userprogram/fireplacefunction hebben, als je daar {"value":"on"} naartoe stuurt zou de openhaardfunctie aangezet moeten worden (en met "off" weer uit).Anoniem: 749449 schreef op maandag 24 oktober 2016 @ 21:02:
Kan iemand met uitleggen als ik alleen de status van de fire place active will pushen hoe dat te doen? via uiStatus krijg je alle statussen terug namelijk.
Het ligt aan de interface die je gebruikt (Node/JS, PHP, ...) hoe je dat precies moet opsturen.
Dit is natuurlijk leuk. Maar elk apparaat dat extern te benaderen is, is weer een nieuwe mogelijkheid tot een backdoor. En daar hebben we er tegenwoordig al genoeg van.Croga schreef op zondag 3 juli 2016 @ 22:24:
[...]
Zie hier: brightvalve in "Nefit Easy: XMPP protocol ontcijferen"
Er wordt extern geen data opgeslagen. (wat niet betekend dat dat nooit gaat gebeuren maar op dit moment wordt alle data alleen in het apparaat zelf opgeslagen)
En stel Bosch trekt de stekker er uit, dan zitten we dus met een veel te dure aan/uit thermostaat.
Helaas is het dus nog niet mogelijk om de Nefit Easy via het lokale netwerk aan te sturen. Staat dit nog wel op de planning?
[ Voor 7% gewijzigd door nighthunter op 29-11-2016 15:38 ]
👉🏻 Blog 👈🏻
Inderdaad, zie het gespreksverslag van het bezoek aan Nefit/Bosch van brightvalve.kraades schreef op dinsdag 29 november 2016 @ 15:46:
Ik meen mij te herinneren dat de Easy ook al functionaliteit aan boord heeft om zonder de backend te kunnen functioneren.
Ten tweede: de Easy zelf heeft een HTTP-REST interface aan boord, die open gezet wordt zodra er geen verbinding met de Nefit backend gemaakt kan worden. Zo kunnen de apps binnen het thuisnetwerk altijd met de Easy communiceren, ook al is de internetverbinding weg. Die interface werkt via HTTP-REST en zou de endpoints die ook over XMPP gebruikt worden moeten ondersteunen. Ik heb het nog niet getest, maar ga dat nog wel doen. De Easy gaat in dat geval op UDP poort 50505 zitten broadcasten zodat de apps z'n interne IP-nummer kunnen achterhalen.
Let wel: als je deze modus aanzet (je zou bv in je router verkeer naar de backend kunnen blokkeren zodat de Nefit altijd alleen lokaal werkt) dan werken bepaalde diensten, zoals het weersafhankelijk regelen van de binnentemperatuur, niet meer (tenzij je CV-ketel een eigen buitentemp sensor heeft, anders komt die data namelijk van het internet).
Omdat alle data in de Easy zelf zijn opgeslagen (want geen cloud, remember
[ Voor 6% gewijzigd door Templar op 29-11-2016 17:58 ]
Hoe zorg ik er voor dat mijn nefit online blijft als ik de terminal afsluit?
Zodra ik de terminal afsluit verlies ik de connectie met mijn nefit easy...
Log in domoticz:
2017-01-11 20:58:09.104 Error: NefitEasy: Error getting http data!
Als ik hierna de terminal weer opstart:
pi@raspberrypi ~/domoticz/scripts/lua $ easy status
Error: missing password
Lijkt me een simpel scriptje welke mijn password etc stuurt?
Hij warmt gewoon doodleuk op tot hij de gewenste temperatuur heeft bereikt en soms gaat hij nog door tot 0.1 graden boven de gewenste temperatuur. Het resultaat is dat hij altijd zo'n 0.5 tot 1 graden overshoot maakt.
Leert hij dit eventueel zelf nog? Ik heb hem nu een maand in gebruik ongeveer. Hoe kan ik dit verbeteren?
WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs
Edit:
Zie Slimme thermostaten: welke kiezen? ervaringen?
[ Voor 34% gewijzigd door technorabilia op 18-01-2017 19:32 ]
👉🏻 Blog 👈🏻
Hiervoor heb ik de Nefit Easy http server geïnstalleerd via ssh: 'npm i nefit-easy-http-server -g'.
Het starten van deze server zou simpel moeten gaan via: 'easy-server --serial=serialnumber --access-key=enteryourkey --password=enteryourpassword'. Dat werkt dus niet, ik krijg constant de melding 'command not found'.
Wat wel werkt (via ssh) is: 'node /volume1/@appstore/Node.js_v4/usr/local/bin/easy-server --serial=serialnumber --access-key=enteryourkey --password=enteryourpassword'.
Waar is het mis gegaan? Kan ik dit nog corrigeren? Ik wil graag via onderstaand script de server automatisch laten starten.
Wie oh wie kan mij helpen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| #! /bin/sh ### BEGIN INIT INFO # Provides: nefit easy http server # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: nefit-easy-http-server # Description: This daemon will start the nefit-easy-http-server for use by Domoticz ### END INIT INFO # Do NOT "set -e" PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin DESC="Nefit Easy HTTP Server" NAME=easy-server USERNAME=root PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/usr/local/etc/rc.d/$NAME NEFIT_SERIAL_NUMBER=enterserial NEFIT_ACCESS_KEY=enterkey NEFIT_PASSWORD=enterpassword NEFIT_HOST=127.0.0.1 NEFIT_PORT=3000 DAEMON=/usr/local/bin/$NAME DAEMON_ARGS="$DAEMON_ARGS --serial=$NEFIT_SERIAL_NUMBER" DAEMON_ARGS="$DAEMON_ARGS --access-key=$NEFIT_ACCESS_KEY" DAEMON_ARGS="$DAEMON_ARGS --password=$NEFIT_PASSWORD" DAEMON_ARGS="$DAEMON_ARGS --host=$NEFIT_HOST" DAEMON_ARGS="$DAEMON_ARGS --port=$NEFIT_PORT" # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # # Function that starts the daemon/service # do_start() { nohup $DAEMON $DAEMON_ARGS & echo `ps w | grep ${DAEMON} | grep -v -E 'grep' | awk '{print $1}' > $PIDFILE` } wait_for_status () { counter=$2 while [ ${counter} -gt 0 ]; do do_status [ $? -eq $1 ] && return let counter=counter-1 sleep 1 done return 1 } # # Function that stops the daemon/service # do_stop() { # Kill the application kill `cat ${PIDFILE}` wait_for_status 1 20 || kill -9 `cat ${PIDFILE}` rm -f ${PIDFILE} } do_status () { if [ -f ${PIDFILE} ] && kill -0 `cat ${PIDFILE}` > /dev/null 2>&1; then return fi rm -f ${PIDFILE} return 1 } case "$1" in start) do_start ;; stop) do_stop ;; restart) do_stop do_start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 3 ;; esac : |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
| #!/usr/bin/python import sleekxmpp, json, base64, hashlib, math, datetime from Crypto.Cipher import AES class NefitEasy(sleekxmpp.ClientXMPP): userMode = None # clock or manual temperature = None setpoint = None outsideTemperature = None manualSetpoint = None boilerIndicator = None # CH, HW or No systemPressure = None hotWater = None override = None overrideSetpoint = None overrideDuration = None powerSave = None holidayMode = None firePlace = None sundayToday = None sundayTomorrow = None usagePage = None usage = {} def __init__(self, serialNumber, accessCode, password): secret = b'X\xf1\x8dp\xf6g\xc9\xc7\x9e\xf7\xdeC[\xf0\xf9\xb1U;\xbbna\x81b\x12\xab\x80\xe5\xb0\xd3Q\xfb\xb1' self.key = self.GetMD5(accessCode.encode() + secret) + self.GetMD5(secret + password.encode()) self.recipient = 'rrcgateway_{0}@wa2-mz36-qrmzh6.bosch.de'.format(serialNumber) jid = 'rrccontact_{0}@wa2-mz36-qrmzh6.bosch.de'.format(serialNumber) connectionPassword = 'Ct7ZR03b_{0}'.format(accessCode) sleekxmpp.ClientXMPP.__init__(self, jid, connectionPassword) self.add_event_handler('session_start', self.start) self.add_event_handler('message', self.message) def start(self, event): self.send_presence() self.get_roster() def message(self, incomingMessage): messageList = str(incomingMessage['body']).split("\n\n") if len(messageList) > 1: data = self.Decrypt(messageList[1].strip()).replace(b'\x00', b'').decode('utf-8') if len(data) > 0: self.data = json.loads(data)['value'] if self.messageType == 'Status': self.userMode = self.data['UMD'] self.temperature = float(self.data['IHT']) self.setpoint = float(self.data['TSP']) self.manualSetpoint = float(self.data['MMT']) self.boilerIndicator = self.data['BAI'] self.hotWater = self.ParseBoolean(self.data['DHW']) self.override = self.ParseBoolean(self.data['TOR']) self.overrideSetpoint = float(self.data['TOT']) self.overrideDuration = float(self.data['TOD']) self.powerSave = self.ParseBoolean(self.data['ESI']) self.holidayMode = self.ParseBoolean(self.data['HMD']) self.firePlace = self.ParseBoolean(self.data['FPA']) self.sundayToday = self.ParseBoolean(self.data['DAS']) self.sundayTomorrow = self.ParseBoolean(self.data['TAS']) elif self.messageType == 'OutsideTemperature': self.outsideTemperature = float(self.data) elif self.messageType == 'SystemPressure': self.systemPressure = float(self.data) elif self.messageType == 'UsagePage': self.usagePage = int(math.floor(self.data / 32) + 1) elif self.messageType == 'Usage': for datum in self.data: if datum['d'] != '255-256-65535': self.usage[datetime.datetime.strptime(datum['d'], '%d-%m-%Y')] = {'centralHeating': datum['ch'], 'hotWater': datum['hw'], 'averageOutsideTemperature': datum['T'] / 10.0} sleekxmpp.ClientXMPP.disconnect(self) def GetMD5(self, data): md5 = hashlib.md5() md5.update(data) return md5.digest() def Decrypt(self, data): aes = AES.new(self.key) aes = AES.new(self.key, AES.MODE_ECB) return aes.decrypt(base64.b64decode(data)) def ParseBoolean(self, string): if string == 'on' or string == 'true': return True else: return False def SendMessage(self, outgoingMessage): sleekxmpp.ClientXMPP.connect(self, ('wa2-mz36-qrmzh6.bosch.de', 5222)) self.send_message(mto = self.recipient, mbody = outgoingMessage, mtype = 'chat') self.process(block = True) def GetData(self): self.messageType = 'Status' self.SendMessage('GET /ecus/rrc/uiStatus HTTP /1.0\nUser-Agent: NefitEasy') self.messageType = 'OutsideTemperature' self.SendMessage('GET /system/sensors/temperatures/outdoor_t1 HTTP /1.0\nUser-Agent: NefitEasy') self.messageType = 'SystemPressure' self.SendMessage('GET /system/appliance/systemPressure HTTP /1.0\nUser-Agent: NefitEasy') def GetUsage(self): self.messageType = 'UsagePage' self.SendMessage('GET /ecus/rrc/recordings/gasusagePointer HTTP /1.0\nUser-Agent: NefitEasy') self.messageType = 'Usage' self.SendMessage('GET /ecus/rrc/recordings/gasusage?page={0} HTTP /1.0\nUser-Agent: NefitEasy'.format(self.usagePage)) NefitEasy = NefitEasy(serialNumber='[serialnumber]', accessCode='[accescode]', password='[password]') NefitEasy.GetData() print('Your Easy is operating in {0} mode. Inside temperature is {1} C, setpoint {2} C. Outside temperature is {3} C. System pressure {4} bar'.format(NefitEasy.userMode, NefitEasy.temperature, NefitEasy.setpoint, NefitEasy.outsideTemperature, NefitEasy.systemPressure)) #NefitEasy.GetUsage() #print(NefitEasy.usage) |
Niet echt de moeite genomen om fouten e.d. af te vangen, dus your mileage may vary. Op het moment vooral geïnteresseerd in uitlezen en niet in aansturen, dus weet niet of ik nog set commands ga implementeren.
HP ZBook Studio G3 - Hyundai Ioniq EV Classic - Opel Vivaro-e 75kWh - 22x Prusa i3 MK3S - 8x Prusa MINI+ - Ooznest Workbee 1,5m x 1,5m
Hey, ondertussen hiermee verder geraakt? Ik denk eraan een MB-LAN2 te kopen voor integratie van mijn Junkers ketel in mijn domotica systeem (via OpenHAB). Ben nu een beetje aan het zoeken wat er zoal mogelijk is, deze post is het meest concrete dat ik tot nu toe ben tegengekomen.EngelbertDubois schreef op woensdag 5 oktober 2016 @ 14:24:
Ik ben via PacketSniffing van mijn Junkers Home applicatie op deze post terecht gekomen.
De connectie tussen mijn Thermostaat / Ketel / Lan-module lijkt op dezelfde manier te gebeuren als de Nefit. Beide zijn dochtermerken van Bosch. Daarnaast lijkt Junkers een identieke thermostaat als de Nefit te hebben (http://www.junkers-shop.b...n/junkers-control-ct-100/) Alhoewel het bij mij over een andere thermostaat gaat (de FR-120 in combinatie met de MB Lan 2 module)
De communicatie verloopt ook via XMPP, en de endpoints komen overeen tussen mijn gesnifte packets en de github eerder vernoemd.
Het hoofddoel wat ik wil bereiken is een simpele integratie met IFTTT (zet verwarming aan op X graden, zet verwarming uit)
Ik zet mijn berichtje hier neer in het geval anderen via google dit vinden en we misschien ook een reverse engineering van de API kunnen doen. Ik doe alvast een aantal pogingen.
Alvast bedankt voor het geleverd werk met de Nefit Easy, dit zal zeker en vast van pas komen.
Ik heb contact gehad met Junckers maar veel hulp heb ik daar jammer genoeg niet gehad. Publieke documentatie is er niet.
Ik vind de MB-Lan module tot nu toe zeer beperkt. Veel integratie mogelijkheden zijn er niet
Wat niet wil zeggen natuurlijk dat de MB-LAN2 niet meer gebruikt kan worden voor integratie met andere systemen. Het is in ieder geval zeer plausibel dat er grote overeenkomsten zijn met de Nefit, gezien het gemeenschappelijke moederbedrijf. In ieder geval zou alles wat met die JunkersHome app kan ingesteld worden mogelijk moeten zijn via XMPP denk ik dan.
Ik heb momenteel de opportuniteit om een tweedehands MB-LAN2 module te kopen, ik denk dat ik dat wel ga doen en dan zie ik wel wat de mogelijkheden zijn.
Edit: nu ik dit topic wat aan het doorbladeren ben, zie ik dat het voornamelijk gaat over de communicatie tussen app en (cloud) backend. Helemaal niet waar ik naar op zoek ben dus. Maar goed, als ik de MB-LAN2 heb start ik wel een nieuw topic.
[ Voor 13% gewijzigd door teaser op 05-03-2017 10:34 ]
Kleine update gebaseerd op https://github.com/patvdleer/nefit-client-pythonShapeshifter schreef op woensdag 25 januari 2017 @ 11:49:
Voor wie liever een Python implementatie heeft heb ik alvast een beginnetje gemaakt. Dit draait op mijn Raspberry Pi:
Python:
1# Hier stond code
Niet echt de moeite genomen om fouten e.d. af te vangen, dus your mileage may vary. Op het moment vooral geïnteresseerd in uitlezen en niet in aansturen, dus weet niet of ik nog set commands ga implementeren.
In deze klasse zit alles wat je nodig hebt om waarden uit te lezen en de temperatuur in te stellen en is hopelijk wat stabieler.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
| #!/usr/bin/python import sleekxmpp, pyaes, multiprocessing, json, base64, hashlib, math, datetime class NefitEasy: userMode = None # clock or manual manualSetpoint = None setpoint = None temperature = None outsideTemperature = None boilerIndicator = None # CH, HW or No systemPressure = None hotWater = None override = None overrideSetpoint = None overrideDuration = None powerSave = None holidayMode = None firePlace = None sundayToday = None sundayTomorrow = None usage = {} lastUpdated = datetime.datetime.now() event = None container = {} def __init__(self, serialNumber, accessKey, password): secret = bytearray.fromhex('58f18d70f667c9c79ef7de435bf0f9b1553bbb6e61816212ab80e5b0d351fbb1') self.key = hashlib.md5(bytearray(accessKey, 'utf8') + secret).digest() + hashlib.md5(secret + bytearray(password, 'utf8')).digest() self.recipient = 'rrcgateway_{0}@wa2-mz36-qrmzh6.bosch.de'.format(serialNumber) self.sender = 'rrccontact_{0}@wa2-mz36-qrmzh6.bosch.de'.format(serialNumber) self.client = sleekxmpp.ClientXMPP(jid = self.sender, password = 'Ct7ZR03b_{0}'.format(accessKey), sasl_mech = 'DIGEST-MD5') self.client.add_event_handler('session_start', self.SessionStart) self.client.register_plugin('xep_0199') def SessionStart(self, event): self.client.send_presence() self.client.get_roster() def Connect(self): self.client.connect() self.client.process(block = False) def Disconnect(self): self.client.disconnect() def Decrypt(self, data): if not data: return '' cipher = pyaes.Decrypter(pyaes.AESModeOfOperationECB(self.key), padding = pyaes.PADDING_NONE) decrypted = cipher.feed(base64.b64decode(data)) + cipher.feed() return decrypted.decode('utf8').rstrip(chr(0)) def Message(self, message): if message['type'] in ('chat', 'normal'): headers = message['body'].split('\n')[:-1] body = message['body'].split('\n')[-1:][0] if 'HTTP/1.0 400 Bad Request' in headers: return response = self.Decrypt(body) if 'Content-Type: application/json' in headers: response = response.strip() if len(response) > 1: response = json.loads(response.strip()) self.container[id(self.event)] = response self.event.set() def Send(self, body): body = body.replace('\r', ' \n') message = self.client.make_message(mto = self.recipient, mfrom = self.sender, mbody = body) message['lang'] = None str_data = sleekxmpp.xmlstream.tostring(message.xml, xmlns = message.stream.default_ns, stream = message.stream, top_level = True) str_data = str_data.replace('&#13;', ' ') return message.stream.send_raw(str_data) def Get(self, url): self.event = multiprocessing.Event() self.client.add_event_handler('message', self.Message) self.Send('GET {0} HTTP/1.1\rUser-Agent: NefitEasy\r\r'.format(url)) self.event.wait(timeout = 10) self.client.del_event_handler('message', self.Message) if id(self.event) in self.container.keys(): response = self.container[id(self.event)] del(self.container[id(self.event)]) else: reponse = None return response def Encrypt(self, data): if len(data) % 16 != 0: data = data + (16 - len(data) % 16) * chr(0) cipher = pyaes.Encrypter(pyaes.AESModeOfOperationECB(self.key), padding = pyaes.PADDING_NONE) ciphertext = cipher.feed(data) + cipher.feed() return base64.b64encode(ciphertext) def Put(self, url, data): data = data if isinstance(data, str) else json.dumps(data, separators = (',', ':')) encrypted_data = self.Encrypt(data).decode('utf8') body = '\r'.join([ 'PUT {0} HTTP/1.1'.format(url), 'Content-Type: application/json', 'Content-Length: {0}'.format(len(encrypted_data)), 'User-Agent: NefitEasy\r', encrypted_data ]) self.event = multiprocessing.Event() self.client.add_event_handler('message', self.Message) self.Send(body) self.event.wait(timeout = 10) self.client.del_event_handler('message', self.Message) def GetThermostatData(self): self.Connect() status = self.Get('/ecus/rrc/uiStatus')['value'] outdoorTemperature = self.Get('/system/sensors/temperatures/outdoor_t1')['value'] systemPressure = self.Get('/system/appliance/systemPressure')['value'] self.userMode = status['UMD'] self.manualSetpoint = float(status['MMT']) self.setpoint = float(status['TSP']) self.temperature = float(status['IHT']) self.outsideTemperature = outdoorTemperature self.boilerIndicator = status['BAI'] self.systemPressure = systemPressure self.hotWater = True if status['DHW'] == 'on' else False self.override = True if status['TOR'] == 'on' else False self.overrideSetpoint = float(status['TOT']) self.overrideDuration = float(status['TOD']) self.powerSave = True if status['ESI'] == 'on' else False self.holidayMode = True if status['HMD'] == 'on' else False self.firePlace = True if status['FPA'] == 'on' else False self.sundayToday = True if status['DAS'] == 'on' else False self.sundayTomorrow = True if status['TAS'] == 'on' else False self.lastUpdated = datetime.datetime.now() self.Disconnect() def GetThermostatUsage(self): self.Connect() self.usagePointer = math.ceil(self.Get('/ecus/rrc/recordings/gasusagePointer')['value'] / 32.0) data = self.Get('/ecus/rrc/recordings/gasusage?page={0}'.format(self.usagePointer))['value'] for datum in data: date = datetime.datetime.strptime(datum['d'], '%d-%m-%Y') if datum['d'] != '255-256-65535' else False if date and date not in self.usage: self.usage[date] = {'centralHeating': datum['ch'], 'hotWater': datum['hw'], 'averageOutsideTemperature': datum['T'] / 10.0} self.Disconnect() def SetTemperature(self, temperature): self.Connect() self.Put('/heatingCircuits/hc1/temperatureRoomManual', {'value': float(temperature)}) self.Put('/heatingCircuits/hc1/manualTempOverride/status', {'value': 'on'}) self.Put('/heatingCircuits/hc1/manualTempOverride/temperature', {'value': float(temperature)}) self.Disconnect() # Enter serialNumber, accessKey and password and uncomment to test """ NefitEasy = NefitEasy('serialNumber', 'accessKey', 'password') NefitEasy.GetThermostatData() print(NefitEasy.userMode) print(NefitEasy.manualSetpoint) print(NefitEasy.setpoint) print(NefitEasy.temperature) print(NefitEasy.outsideTemperature) print(NefitEasy.boilerIndicator) print(NefitEasy.systemPressure) print(NefitEasy.hotWater) print(NefitEasy.override) print(NefitEasy.overrideSetpoint) print(NefitEasy.overrideDuration) print(NefitEasy.powerSave) print(NefitEasy.holidayMode) print(NefitEasy.firePlace) print(NefitEasy.sundayToday) print(NefitEasy.sundayTomorrow) NefitEasy.SetTemperature(20) """ |
HP ZBook Studio G3 - Hyundai Ioniq EV Classic - Opel Vivaro-e 75kWh - 22x Prusa i3 MK3S - 8x Prusa MINI+ - Ooznest Workbee 1,5m x 1,5m
Ik heb zeer beperkte programmeer kennis en het draait op een Raspberry Pi (voor Domoticz)
[/quote]
root@raspberrypi:/home/pi# pm2 start /home/pi/nefiteasyhttpserver.sh
[PM2] Applying action restartProcessId on app [nefiteasyhttpserver](ids: 0)
[PM2] [nefiteasyhttpserver](0) ✓
[PM2] Process successfully started
┌─────────────────────┬────┬──────┬──────┬─────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├─────────────────────┼────┼──────┼──────┼─────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ Nefit Easy │ 1 │ fork │ 1046 │ online │ 0 │ 3m │ 0% │ 32.0 MB │ disabled │
│ nefiteasyhttpserver │ 0 │ fork │ 1140 │ stopped │ 92 │ 0 │ 0% │ 0 B │ disabled │
└─────────────────────┴────┴──────┴──────┴─────────┴─────────┴────────┴─────┴───────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
root@raspberrypi:/home/pi#
[quote]
[ Voor 99% gewijzigd door BThomas op 26-06-2017 14:28 ]
Ik draai Supervisor op mijn Ubuntu servertje. Die houdt wat processen in de gaten, waaronder DSMR reader en een Nefit script. Deze entry heb ik in de Supervisor config /etc/supervisor/supervisord.conf staan:BThomas schreef op maandag 26 juni 2017 @ 13:38:
Hoe zorg ik ervoor dat de server mijn gegevens bij blijkt werken? Nu moet ik via SSH het volgende commando geven: easy-server --serial=123 --access-key=123 --password=123, om er voor te zorgen dat ik nieuwe data krijg.
Ik heb zeer beperkte programmeer kennis en het draait op een Raspberry Pi (voor Domoticz)
[/quote]
root@raspberrypi:/home/pi# pm2 start /home/pi/nefiteasyhttpserver.sh
[PM2] Applying action restartProcessId on app [nefiteasyhttpserver](ids: 0)
[PM2] [nefiteasyhttpserver](0) ✓
[PM2] Process successfully started
┌─────────────────────┬────┬──────┬──────┬─────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├─────────────────────┼────┼──────┼──────┼─────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ Nefit Easy │ 1 │ fork │ 1046 │ online │ 0 │ 3m │ 0% │ 32.0 MB │ disabled │
│ nefiteasyhttpserver │ 0 │ fork │ 1140 │ stopped │ 92 │ 0 │ 0% │ 0 B │ disabled │
└─────────────────────┴────┴──────┴──────┴─────────┴─────────┴────────┴─────┴───────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
root@raspberrypi:/home/pi#
[quote]
1
2
3
4
5
6
7
8
9
10
| [program:NEFITeasyserver] command=/usr/bin/easy-server --port 8124 --serial=xxx --access-key=xxx --password=xxx autostart = true autorestart = true redirect_stderr = true loglevel=error stdout_logfile = /var/log/supervisor/nefiteasy.log stdout_logfile_maxbytes = 1MB stdout_logfile_backups = 3 |
Supervisor zorgt er voor dat een script herstart wordt wanneer het crasht en doet ook dingen met logging.
Ik zie nu ook dat jij een ander script gebruikt; ik heb deze. Maar beiden zouden met Supervisord moeten werken.
Ik ben al een poosje bezig om de docker container te laten draaien op een rpi.
Op mijn mac werkt het allemaal naar behoren. De server wordt aangezet en ik kan met fibaro de temp uitlezen en bijvoorbeeld de openhaard modus aan en uit zetten.
Echer, dan moet ik wel mijn mac dag en nacht aan laten staan. Vandaar dat ik graag de easy server op een raspberry pi 3 zou willen laten draaien.
Ik heb het volgende gedaan: de laatste versie van hypriot gedownload (https://blog.hypriot.com/...inux-on-the-raspberry-pi/) en daar vervolgens alle updates geinstalleerd en daarna node js erop gezet (versie 8.9.4)
Vervolgens de container gestart (docker run -d -p 3000:3000 -e "NEFIT_SERIAL_NUMBER=xxxxxxxxx" -e "NEFIT_ACCESS_KEY=xxxxxxxxxx" -e "NEFIT_PASSWORD=xxxxxxxx" trafex/nefiteasy-http-server.
De rpi is even bezig, de container wordt gedwonload en er verschijnt een code op dezelfde manier als op mijn mac. Als ik nu docker ps run, dan zie ik geen container staan.
Ik vermoed dat de container niet voor een ARM processor is gemaakt.
[ Voor 4% gewijzigd door K_Erik op 04-03-2018 21:44 ]
Ik heb de Trafex easy http server gedownload van GitHub en de docker file een beetje aangepast:
FROM resin/rpi-raspbian:latest
ENTRYPOINT []
FROM node:9.2.0-alpine
LABEL Maintainer="Tim de Pater <code@trafex.nl>" \
Description="Runs the Nefit Easy HTTP server in a Docker container for easy deploying."
# Create workdir
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Add application
COPY package.json yarn.lock /usr/src/app/
RUN yarn install --non-interactive && yarn cache clean
COPY . /usr/src/app
CMD [ "yarn", "start" ]
Hierdoor wordt de container geschikt voor een RPI3.
Ga naar de map op je RPI waar je de files neer hebt gezet, pas de donker file aan en vervolgens maak je een nieuwe image met: docker build -t nefit .
De naam nefit kan je vervangen door een eigen naam en hiermee kan je vervolgens de container starten.
Succes!
[ Voor 82% gewijzigd door K_Erik op 04-03-2018 21:43 ]
Zijn er hier meer mensen met problemen?
Ja, er is een nieuwe versie online gezet welke het probleem oplost. Bij mij werkt het inmiddels weer.bartbh schreef op dinsdag 29 mei 2018 @ 21:49:
Sinds vanochtend werkt de Nefit Easy server bij mij niet meer. Blijkbaar ben ik niet de enige: bartbh in "Domoticz - open source domotica systeem - deel 3"
Zijn er hier meer mensen met problemen?
Zie: https://github.com/robert...asy-http-server/issues/12
[ Voor 8% gewijzigd door WouterG op 29-05-2018 23:20 ]
De boel opnieuw geïnstalleerd en deze handleiding gevolgd, maar ik blijf dezelfde error krijgen. Iemand een idee?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| /usr/local/lib/node_modules/nefit-easy-http-server/node_modules/nefit-easy-commands/lib/index.js:2 const { NefitEasyClient } = require('nefit-easy-core'); ^ SyntaxError: Unexpected token { at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:405:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/nefit-easy-commands/index.js:1:80) at Module._compile (module.js:398:26) at Object.Module._extensions..js (module.js:405:10) |
Op zich heb ik het nu aan de praat, maar om de paar dagen hangt het geheel zichzelf op. Een enkele keer heb ik een paar 0-metingen als gevolg van Time-outs, soms komen er alleen nog maar Time-Outs en moet ik de easy-server resetten.
Zijn er meer die hier last van hebben? Zou het gebruiken van de cli versie dit kunnen verminderen? Ik vraag elke minuut wat waarden op, en had met de php-versie nooit problemen, die draaide soms maanden achter elkaar.
Er is blijkbaar aan de cloud kant iets gewijzigd; Robert Klep heeft zijn code al aangepast maar de cloud service is niet altijd bereikbaar. Ik heb nefit-easy-http-server draaien via Supervisord en ik herstart het script voor de zekerheid elke dag. Er is ook iemand die een bordje heeft gemaakt waarmee je lokaal de thermostaat uit kunt lezen (kun je ook bestellen). Iemand anders heeft hier dan weer wat geschreven om hier een ESP module aan te knopen voor gebruik in bijvoorbeeld Home Assistant.pjsmits schreef op dinsdag 12 juni 2018 @ 13:14:
Ik heb naar aanleiding van het gewijzigde Nefit back-end mijn implementatie op mijn Synology omgezet naar het gebruik met de Nefit easy server van Robert Klep. (eerst gebruikte ik de php versie van KaboutSuper, zie eerder in dit forum). Ik gebruik geen domoticz, maar sla alles op in een eigen db. Ik moest dus ook nog even uitvinden hoe ik de server vanuit php met curl commandos kon aansturen.
Op zich heb ik het nu aan de praat, maar om de paar dagen hangt het geheel zichzelf op. Een enkele keer heb ik een paar 0-metingen als gevolg van Time-outs, soms komen er alleen nog maar Time-Outs en moet ik de easy-server resetten.
Zijn er meer die hier last van hebben? Zou het gebruiken van de cli versie dit kunnen verminderen? Ik vraag elke minuut wat waarden op, en had met de php-versie nooit problemen, die draaide soms maanden achter elkaar.
Echter krijg ik onderstaande foutmelding bij installatie. Hierbij volg ik de volgende wiki: https://www.domoticz.com/wiki/NefitEasy
bij de stap:
Install pm2 to control the service
npm install pm2 -g
gaat het mis. zowel met als zonder sudo zowel met als zonder de -g
Heeft iemand toevallig een idee hierover?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| pi@raspberrypi:~ $ npm install pm2 (node:942) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead. npm ERR! Error: Method Not Allowed npm ERR! at errorResponse (/usr/share/npm/lib/cache/add-named.js:260:10) npm ERR! at /usr/share/npm/lib/cache/add-named.js:203:12 npm ERR! at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:167:7) npm ERR! at FSReqWrap.oncomplete (fs.js:135:15) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/npm/npm/issues> npm ERR! System Linux 4.14.52-v7+ npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "pm2" npm ERR! cwd /home/pi npm ERR! node -v v8.11.1 npm ERR! npm -v 1.4.21 npm ERR! code E405 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/pi/npm-debug.log npm ERR! not ok code 0 pi@raspberrypi:~ $ cd nefit-easy-http-server pi@raspberrypi:~/nefit-easy-http-server $ sudo npm i nefit-easy-http-server -g (node:961) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead. npm ERR! tar.unpack untar error /root/.npm/debug/2.6.9/package.tgz npm ERR! error rolling back Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/body-parser/node_modules/debug/node_modules/ms' npm ERR! error rolling back nefit-easy-http-server@4.0.1 { Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/body-parser/node_modules/debug/node_modules/ms' npm ERR! error rolling back errno: -39, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back syscall: 'rmdir', npm ERR! error rolling back path: '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/body-parser/node_modules/debug/node_modules/ms' } npm ERR! Error: Method Not Allowed npm ERR! at errorResponse (/usr/share/npm/lib/cache/add-named.js:260:10) npm ERR! at /usr/share/npm/lib/cache/add-named.js:203:12 npm ERR! at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:167:7) npm ERR! at FSReqWrap.oncomplete (fs.js:135:15) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/npm/npm/issues> npm ERR! System Linux 4.14.52-v7+ npm ERR! command "/usr/bin/node" "/usr/bin/npm" "i" "nefit-easy-http-server" "-g" npm ERR! cwd /home/pi/nefit-easy-http-server npm ERR! node -v v8.11.1 npm ERR! npm -v 1.4.21 npm ERR! code E405 npm ERR! tar.unpack untar error /root/.npm/mime-types/2.1.19/package.tgz npm ERR! tar.unpack untar error /root/.npm/iconv-lite/0.4.19/package.tgz npm ERR! tar.unpack untar error /root/.npm/mime-db/1.35.0/package.tgz npm ERR! error rolling back Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' npm ERR! error rolling back body-parser@1.18.2 { Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' npm ERR! error rolling back errno: -39, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back syscall: 'rmdir', npm ERR! error rolling back path: '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' } npm ERR! error rolling back Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' npm ERR! error rolling back express@4.16.3 { Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' npm ERR! error rolling back errno: -39, npm ERR! error rolling back code: 'ENOTEMPTY', npm ERR! error rolling back syscall: 'rmdir', npm ERR! error rolling back path: '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' } npm ERR! tar.unpack untar error /root/.npm/safer-buffer/2.1.2/package.tgz npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/pi/nefit-easy-http-server/npm-debug.log npm ERR! not ok code 0 |
Bij mij werkt het primaslelieveld schreef op zaterdag 1 december 2018 @ 17:15:
Ben ik heb alleen als ik zeg dat sinds gisteren mijn easy geen internet meer heeft? Wifi werkt prima (kan hem ook lokaal pingen) maar geen vinkje bij het wereld bolletje.
1
2
| Error: ENOTEMPTY: directory not empty, rmdir '/usr/local/lib/node_modules/nefit-easy-http-server/node_modules/express/node_modules/body-parser/node_modules/http-errors/node_modules' npm ERR! error rolling back |
Oftewel, gooi die dir even weg.
[ Voor 6% gewijzigd door BCC op 01-12-2018 18:01 ]
Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.
Heb ik ook wel eens. Lost zich altijd "vanzelf" wel weer op. Ik denk iets mis met de connectie met de Siemens servers.
👉🏻 Blog 👈🏻
Dus:
1. of er is een Bosch server probleem (hij zette een sessie over TCP/5222 met de bosch server 139.15.227.109 op toen ie het "even" deed.
of
2. mijn easy is stuk... lijkt me sterk want ik zie hem gewoon in mijn wifi hangen en kan hem ook al die tijd pingen.
Ik zie 02.1.9.01 in de easy bij opstarten is dat een firmware? Is dit de laatste? weet iemand dit?
Morgen maar weer bellen met Nefit, dan zou de "expert" aanwezig zijn.
Weet iemand wellicht waar het daadwerkelijke klokprogramma opgeslagen is!? Ik schrok ervan dat dit nu weg is... (na reset easy?) Ik zou verwachten dat juist dát op die nefit servers staat...
Wie o wie weet een methode om in kaart te brengen hoe vaak en hoe lang de nefit easy in de boiler opwarm stand staat?
Ik heb nl het idee dat de boiler veel te vaak opgewarmd wordt. Wellicht heeft dit te maken met slecht isolatie of moet het ding onderhoud hebben (hebben boilers onderhoud nodig?)
Hoor het graag
APS QS1 en Y600 3*340w 38graden en 3*340w 20Graden alles naar het Oosten 92 graden. Zuid set sma sunnyboy 2100b 8*255w 38 graden 178graden zuid || Warmtepomp onder cnstructie Panasonic MDC 9kw j-series enkel radiatoren maar lage temperaturen
Ik heb de EMS-ESP draaien naast een bordje van bbqkees. Die combi geeft mij veel inzicht in het gedrag van de boiler. Ik ben er nu achter dat de vorige bewoners een te grote ketel op hebben gehangen; hij draait meestal op mijn minimum vermogen.Fantastic_fox schreef op vrijdag 1 februari 2019 @ 17:53:
Heren,
Wie o wie weet een methode om in kaart te brengen hoe vaak en hoe lang de nefit easy in de boiler opwarm stand staat?
Ik heb nl het idee dat de boiler veel te vaak opgewarmd wordt. Wellicht heeft dit te maken met slecht isolatie of moet het ding onderhoud hebben (hebben boilers onderhoud nodig?)
Hoor het graag
En een ketel heeft onderhoud nodig om veilig en efficiënt een lang leven te hebben! Bel eens een lokale cv installateur.
Mogelijk pendelt de ketel omdat de installatie niet goed waterzijdig ingeregeld is?
[ Voor 4% gewijzigd door balk op 01-02-2019 23:28 ]
APS QS1 en Y600 3*340w 38graden en 3*340w 20Graden alles naar het Oosten 92 graden. Zuid set sma sunnyboy 2100b 8*255w 38 graden 178graden zuid || Warmtepomp onder cnstructie Panasonic MDC 9kw j-series enkel radiatoren maar lage temperaturen
Fantastic_fox schreef op maandag 4 februari 2019 @ 22:13:
@balk is zoiets ook kan en klaar te krijgen? Ik ben hier denk ik echt niet technisch genoeg voor😊
het bordje van BBQ Kees is behoorlijk profi en vergt geen soldeerkunst. Je kunt het zelf in elkaar solderen of bij Kees kant en klaar kopen. Je sluit de ketel aan op de blauwe connector links boven, op dezelfde verbindingen als de thermostaat. Je sluit dan aan de rechterkant de 5V, ground, TX en RX aan op een Wemos D1 bordje, of een andere ESP8266. Die ESP moet je wel een eigen voeding geven.

Je hoeft dan alleen maar de software op de ESP te zetten en dat is behoorlijke simpel met VS Code of Atom i.c.m. Platformio.
Dit is niet kant en klaar maar ook niet extreem moeilijk; ik kan het ook terwijl ik geen software of electronica achtergrond heb. Hoe is jouw ervaring met iets als Domoticz of Home Assistant en met Linux (bijvoorbeeld op een Raspberry Pi)?
Update:
Ik zie nu dat Kees zelfs een Wemos met de Proddy softeware voorgeladen verkoopt! Kant en klaarder kan haast niet.
[ Voor 11% gewijzigd door balk op 04-02-2019 22:32 ]
Interessant bordje! Ik heb twee jaar geleden een Nefit Easy gekocht om daar mijn ketel mee aan te sturen, maar het werkt toch niet fantastisch allemaal. Misschien dat een lokale oplossing beter werkt...balk schreef op maandag 4 februari 2019 @ 22:26:
[...]
het bordje van BBQ Kees is behoorlijk profi en vergt geen soldeerkunst. Je kunt het zelf in elkaar solderen of bij Kees kant en klaar kopen. Je sluit de ketel aan op de blauwe connector links boven, op dezelfde verbindingen als de thermostaat. Je sluit dan aan de rechterkant de 5V, ground, TX en RX aan op een Wemos D1 bordje, of een andere ESP8266. Die ESP moet je wel een eigen voeding geven.
[Afbeelding]
Je hoeft dan alleen maar de software op de ESP te zetten en dat is behoorlijke simpel met VS Code of Atom i.c.m. Platformio.
Dit is niet kant en klaar maar ook niet extreem moeilijk; ik kan het ook terwijl ik geen software of electronica achtergrond heb. Hoe is jouw ervaring met iets als Domoticz of Home Assistant en met Linux (bijvoorbeeld op een Raspberry Pi)?
Update:
Ik zie nu dat Kees zelfs een Wemos met de Proddy softeware voorgeladen verkoopt! Kant en klaarder kan haast niet.
Toevallig hangt er al een Raspberry Pi naast mijn ketel (Nefit ProLine HRC 24/CW4). Zou ik die in combinatie met dit bordje kunnen gebruiken en moet ik dan nog een EMS converter halen? Kan ik naast deze interface de ketel dan ook nog blijven bedienen met de Easy en de app?
HP ZBook Studio G3 - Hyundai Ioniq EV Classic - Opel Vivaro-e 75kWh - 22x Prusa i3 MK3S - 8x Prusa MINI+ - Ooznest Workbee 1,5m x 1,5m
Ik heb ook een Easy. Het is (nog) niet mogelijk om via dit bordje de gewenste temperatuur te veranderen. Je kunt de gewenste temperatuur wel uitlezen, samen met nog veel meer parameters. Ik gebruik de Nefit Easy http server van Robert Klep om de temperatuur in te stellen.Shapeshifter schreef op dinsdag 5 februari 2019 @ 07:47:
[...]
Interessant bordje! Ik heb twee jaar geleden een Nefit Easy gekocht om daar mijn ketel mee aan te sturen, maar het werkt toch niet fantastisch allemaal. Misschien dat een lokale oplossing beter werkt...
Toevallig hangt er al een Raspberry Pi naast mijn ketel (Nefit ProLine HRC 24/CW4). Zou ik die in combinatie met dit bordje kunnen gebruiken en moet ik dan nog een EMS converter halen? Kan ik naast deze interface de ketel dan ook nog blijven bedienen met de Easy en de app?
In plaats van een ESP kun je ook een Pi aan dit EMS bordje hangen. Maar daarop werkt de Arduino code wellicht niet, of niet zo goed.
Ja, ik heb toen geprobeerd die http server om te zetten in Python en te integreren in mijn domoticasysteem, maar beetje vastgelopen en toen had ik geen tijd meer. Wie weet. Ooit. Het was leuk geweest om iets te maken dat de kachel beter regelt dan een tijdklok (op basis van temperatuur en aanwezigheid van mensen).balk schreef op dinsdag 5 februari 2019 @ 10:37:
[...]
Ik heb ook een Easy. Het is (nog) niet mogelijk om via dit bordje de gewenste temperatuur te veranderen. Je kunt de gewenste temperatuur wel uitlezen, samen met nog veel meer parameters. Ik gebruik de Nefit Easy http server van Robert Klep om de temperatuur in te stellen.
In plaats van een ESP kun je ook een Pi aan dit EMS bordje hangen. Maar daarop werkt de Arduino code wellicht niet, of niet zo goed.
HP ZBook Studio G3 - Hyundai Ioniq EV Classic - Opel Vivaro-e 75kWh - 22x Prusa i3 MK3S - 8x Prusa MINI+ - Ooznest Workbee 1,5m x 1,5m
Bij mij draait ie als docker en ik integreer het met Home Assistant door een custom AppDaemon scriptje.Shapeshifter schreef op dinsdag 5 februari 2019 @ 11:59:
[...]
Ja, ik heb toen geprobeerd die http server om te zetten in Python en te integreren in mijn domoticasysteem, maar beetje vastgelopen en toen had ik geen tijd meer. Wie weet. Ooit. Het was leuk geweest om iets te maken dat de kachel beter regelt dan een tijdklok (op basis van temperatuur en aanwezigheid van mensen).
let niet op de beroerde programmeer kwaliteit
Zie ook hier over hoe de temperatuur in te stellen.
1
2
3
4
5
| curl -XPOST http://127.0.0.1:3000/bridge/heatingCircuits/hc1/temperatureRoomManual -d '{"value":20}' -H 'Content-Type: application/json' /heatingCircuits/hc1/temperatureRoomManual { "value" : 20 } /heatingCircuits/hc1/manualTempOverride/status { "value" : "on" } /heatingCircuits/hc1/manualTempOverride/temperature { "value" : 20 } |
Heeft iemand al code op een Pi die met het bordje communiceert?
Ik heb een simpele flow om hem te testen, maar krijg geen output:
1
| [{"id":"xxxxx","type":"nefit-easy","z":"xxxxx","easyconfig":"xxxxx","name":"Nefit Easy","topic":"nefit-easy","command":"flow-temperature","value":"","x":80,"y":720,"wires":[["xxxxx"]]},{"id":"7a3a041.7341cfc","type":"debug","z":"4b373165.971d1","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":270,"y":720,"wires":[]},{"id":"xxxxx","type":"nefit-easy-config","z":"","serialNumber":"xxxxx","accessKey":"xxxxx","password":"xxxxx","timeout":"30"}] |
☀️ 6440 Wp zuid | 🌡️ Stiebel Eltron WPL 15 ACS, HM Trend | Home Assistant
de app connect nog steeds naar wa2-mz36-qrmzh6.bosch.de maar mijn eigen xmpp script wil niet meer verbinden?
edit: probleem opgelost. Firewall probleem.
[ Voor 10% gewijzigd door LinuxMan op 29-12-2020 20:43 ]
Draai je toevallig deze code nog? Ben bezig met de code 2021 in te helpen, `sleekxmpp` is deprecated/archived en er lijkt een issue te zijn met een SSL versie. Ik ben nu bezig met `slixmpp` als vervanging maar ik blijf tegen een auth error aanlopen...Shapeshifter schreef op zondag 25 juni 2017 @ 17:27:
[...]
Kleine update gebaseerd op https://github.com/patvdleer/nefit-client-python
In deze klasse zit alles wat je nodig hebt om waarden uit te lezen en de temperatuur in te stellen en is hopelijk wat stabieler.
.... INGEKORT ....
https://gitlab.com/patvdleer/nefit-client-python/-/tree/dev
Kijk dan eens naar https://github.com/marconfus/aionefitPatvdLeer schreef op maandag 22 november 2021 @ 22:52:
[...]
Draai je toevallig deze code nog? Ben bezig met de code 2021 in te helpen, `sleekxmpp` is deprecated/archived en er lijkt een issue te zijn met een SSL versie. Ik ben nu bezig met `slixmpp` als vervanging maar ik blijf tegen een auth error aanlopen...
https://gitlab.com/patvdleer/nefit-client-python/-/tree/dev
Daar heb ik de Home Assistant client ook op gebaseerd. Echter ontwikkel ik hier niet meer aan omdat mijn thermostaat kapot en vervangen is door wat simpelere. Gelukkig is er wel een andere ontwikkelaar vrij actief geworden die veel beter kan programmeren dan ik.
https://github.com/ksya/ha-nefiteasy
WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs
Ow super, als dat werkt hoef ik niet meer verder te gaan met de poort naar Slixmpp. Ik was het namelijk op aan het pakken juist voor een integratie met HomeAss.HaTe schreef op dinsdag 23 november 2021 @ 07:55:
[...]
Kijk dan eens naar https://github.com/marconfus/aionefit
Daar heb ik de Home Assistant client ook op gebaseerd. Echter ontwikkel ik hier niet meer aan omdat mijn thermostaat kapot en vervangen is door wat simpelere. Gelukkig is er wel een andere ontwikkelaar vrij actief geworden die veel beter kan programmeren dan ik.
https://github.com/ksya/ha-nefiteasy
Zorg dat je geen wachtwoorden of andere gevoelige informatie in je bericht hebt staan, deze informatie is door iedereen te lezen (en evt. te misbruiken)!