Acties:
  • +9 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Via dit forum kwam ik er achter dat de Nefit Easy XMPP gebruikt om met de Bosch backend (Nefit is van Bosch) te babbelen.

De iOS applicatie gebruikt dat protocol ook, en aangezien het verkeer daarvan redelijk makkelijk af te luisteren is (ik heb XMPPloit gebruikt) heb ik geprobeerd om te kijken of het mogelijk is een eigen client te maken.

Vooralsnog is dat nog niet gelukt, ik loop al vast bij de authenticatie. Bij deze een beschrijving van wat ik geprobeerd heb, misschien dat anderen er iets mee kunnen.

De app gebruikt SASL DIGEST-MD5 authenticatie om zich bij de server aan te melden. De challenge/response data ziet er vrij standaard uit, alhoewel er een aantal velden gebruikt worden die niet in voornoemde pagina staan, en ook wordt een veld soms wel, soms niet gequote. Ik weet niet of dat laatste iets uitmaakt.

Na enige handshaking stuurt de server een challenge naar de client (een base64-encoded string, die ik voor de duidelijkheid even formatteer hieronder):

code:
1
2
3
4
5
realm="wa2-mz36-qrmzh6.bosch.de",
nonce="KofKm91UCIVDZQwrugeZueNdaF61rIPiM6u/r8PE",
qop="auth",
charset=utf-8,
algorithm=md5-sess


De client stuurt een response:

code:
1
2
3
4
5
6
7
8
9
username="rrccontact_SERIENUMMER",
realm="wa2-mz36-qrmzh6.bosch.de",
nonce="KofKm91UCIVDZQwrugeZueNdaF61rIPiM6u/r8PE",
cnonce="047FFB47-C3EF-40C9-A805-017FA9BC956C",
nc=00000001,
qop=auth,
digest-uri="xmpp/wa2-mz36-qrmzh6.bosch.de",
response=9d046be53fd44bc7495f13985349dfaf,
charset=utf-8


Daar loop ik al spaak. Waar het bij de response om gaat is het "response" veld, die moet je berekenen aan de hand van het volgende algoritme:
  1. Create a string of the form "username:realm:password". Call this string X.
  2. Compute the 16 octet MD5 hash of X. Call the result Y.
  3. Create a string of the form "Y:nonce:cnonce:authzid". Call this string A1.
  4. Create a string of the form "AUTHENTICATE:digest-uri". Call this string A2.
  5. Compute the 32 hex digit MD5 hash of A1. Call the result HA1.
  6. Compute the 32 hex digit MD5 hash of A2. Call the result HA2.
  7. Create a string of the form "HA1:nonce:nc:cnonce:qop:HA2". Call this string KD.
  8. Compute the 32 hex digit MD5 hash of KD. Call the result Z.
Het is me nog niet gelukt om daar hetzelfde token uit te krijgen als wat de app genereert, waardoor de authenticatie mislukt.

Voor de volledigheid de (Node) code, voor de liefhebber. Ik heb al allerlei mogelijkheden uitgeprobeerd maar ik krijg de juiste token niet uit m'n code.

JavaScript:
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
const crypto = require('crypto')

const MD5 = (s, encoding) => {
  return crypto .createHash('md5')
                .update(s)
                .digest(encoding || 'binary');
};

const MD5H = (s) => MD5(s, 'hex');

const username  = 'rrccontact_' + SERIENUMMER';
const password  = 'PASSWORD';
const realm     = 'wa2-mz36-qrmzh6.bosch.de';
const nonce     = 'KofKm91UCIVDZQwrugeZueNdaF61rIPiM6u/r8PE';
const cnonce    = '047FFB47-C3EF-40C9-A805-017FA9BC956C';
const digestUri = 'xmpp/wa2-mz36-qrmzh6.bosch.de';
const nc        = '00000001';
const qop       = 'auth';

const X   = [ username, realm, password ].join(':');
const Y   = MD5(X);
const A1  = [ Y, nonce, cnonce ].join(':'); // no authzid
const A2  = [ 'AUTHENTICATE', digestUri ].join(':');
const HA1 = MD5H(A1);
const HA2 = MD5H(A2);
const KD  = [ HA1, nonce, nc, cnonce, qop, HA2 ].join(':');
const Z   = MD5H(KD);

console.log('token', Z);


EDIT 25 december 2015

Na "bekijken" van de Android app blijkt dat "password" ook een prefix moet krijgen:
code:
1
const password = 'Ct7ZR03b_' + PASSWORD;


Zodra ik die gebruik wordt het token goed berekend! Volgende stap is om het bereken van het token met node-xmpp-client werkend te krijgen zodat die zich kan authenticeren bij de backend.

EDIT 26 december 2015

Het decrypten van de berichten die de server terugstuurt heb ik inmiddels ook werkend. De berichten zijn met AES-256/ECB/NoPadding versleuteld, de sleutel wordt gegenereerd aan de hand van o.a. de "access key" (die is toegewezen aan het apparaat, staat op de verpakking) en het wachtwoord dat je zelf bij de eerste keer moet opgeven. Zodra ik de code heb opgeschoond zal ik 'em ergens online zetten.

[ Voor 10% gewijzigd door brightvalve op 26-12-2015 14:34 ]


Acties:
  • 0 Henk 'm!

  • wewa
  • Registratie: Januari 2008
  • Laatst online: 16-04-2023
Ik wou ook op een andere manier dan de app toegang verkrijgen tot mijn Nefit. Het is nog niet gelukt maar ik kan je wel wat verder helpen.

Er zijn twee manieren om toegang te krijgen tot de Nefit, de iphone en de android app. De android app kun je als apk downloaden naar je PC. Vervolgens kun je met een decompiler de apk omzetten in code (bijvoorbeeld: jadx).

Ik heb het nog niet heel uitvoerig bekeken maar je zou o.a. kunnen kijken bij:
com.bosch.rrcapp.common.Encryption
com.bosch.rrcapp.common.HttpConnectionManager
com.bosch.rrcapp.gcm.*
com.bosch.rrcapp.data.rrc.*
com.bosch.rrcapp.security.*

Laat even weten of je hiermee verder komt.

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Ik had inderdaad ook al zoiets geprobeerd, alleen heb ik bij gebrek aan een (actieve) Android telefoon de APK via een vage site gedownload en kreeg ik het idee dat het niet de "echte" APK was.

Dus heb ik voor de gelegenheid m'n oude HTC One maar onder het stof vandaan gehaald, de uitkomst van jadx ziet er nu een stuk logischer uit. Ik ga er eens mee aan de slag, mocht ik verder komen zal ik het hier laten weten :)

Acties:
  • +1 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Okee, bij deze een eerste versie van een Nefit Easy client voor Node:
https://github.com/robertklep/nefit-easy-client.

Ik moet nog een hoop uitpluizen maar het is een begin.

Acties:
  • 0 Henk 'm!

Anoniem: 721057

Helemaal super dat je dat voor elkaar hebt gekregen ik was nog bezig met het sniffen via wireshark toen ik dit tegen kwam.
Ik zal je link doorsturen naar een domotica forum zodat zij daar eventueel je verder kunnen helpen.
Ben benieuwd of je nog verder komt ,hou me maar op de hoogte.
Want als je op nefit zelf moet wachten duurt het nog een eeuwigheid. ;-)

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
@Edwin123456

Ik ben nu een beetje bezig met het inventariseren van de commando's die je naar de backend kunt sturen (de meesten zijn gelukkig vrij vanzelfsprekend, bv /system/appliance/systemPressure). Plus dat de Android app me goed op weg helpt ;)

Ik push aanpassingen steeds naar Github, daar staat altijd de meest recente versie. Vooralsnog is er geen documentatie van hoe het werkt, hopelijk is de source leesbaar genoeg.

Acties:
  • 0 Henk 'm!

  • dutchsea
  • Registratie: Oktober 2002
  • Laatst online: 30-05-2023
Ik heb de installatie geprobeerd op mijn Raspberry Pi maar krijg errors bij de npm install

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Top dat jullie dit doen ! ben benieuwd naar de resultaat. Ik volg

Zou leuk zijn wat gedetaileerder de nefit uit te lezen, (en/of regelmatiger) zodat ik mijn gas verbruik + elektra in detail kan weergeven.

Tja vanalles


Acties:
  • 0 Henk 'm!

  • Holland23
  • Registratie: Maart 2013
  • Laatst online: 30-05-2023
Hi Brightvalve,

Heb getracht het aan de praat te krijgen, maar de onderstaande melding verwelkomde mij :)
Natuurlijk heb ik de access key, serial en password eerder opgenomen in de environment. Ik gebruik de source van 30 dec. Enig idee wat ik verkeerd doe....? Hieronder heb ik de plek van de circumflex met een bold weergegeven.


pi@raspberrypi ~/nefit-easy-client $ node example/current-status.js
/home/pi/nefit-easy-client/example/current-status.js:12
client.connect().then( () => {
^
SyntaxError: Unexpected token )
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3

[ Voor 4% gewijzigd door Holland23 op 30-12-2015 01:35 ]


Acties:
  • 0 Henk 'm!

  • jrking
  • Registratie: November 2015
  • Laatst online: 30-04 08:47
@brightvalve: mooi gedaan! het werkt als een trein hier, klein beetje uitgebreid en via een cronjob een periodieke mqtt-publish die ik met openhab weer netjes verder kan verwerken :-)

@Holland23: waarschijnlijk gebruik je een (te) oude versie van node, met de meest recente (5.3.0) werkt het script wel goed

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
@Holland23 @jrking je moet inderdaad minstens Node v4 gebruiken. Je zou een warning moeten krijgen bij oudere versies, maar dat blijkt niet te werken als je een npm install doet in een uitgecheckte repository.

Aan iedereen: ik wil de komende dagen nagaan hoe je commando's naar de Easy kunt opsturen, plus nog wat meer high-level commando's implementeren, en wellicht zelfs een CLI tool maken zodat je niet moeilijk hoeft te doen met JS code :-)

Acties:
  • 0 Henk 'm!

  • dutchsea
  • Registratie: Oktober 2002
  • Laatst online: 30-05-2023
dutchsea schreef op dinsdag 29 december 2015 @ 22:23:
Ik heb de installatie geprobeerd op mijn Raspberry Pi maar krijg errors bij de npm install
Hieronder de errors. Als iemand weet wat het probleem is?

ERR! Error: failed to fetch from registry: promise-queue
ERR! at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12
ERR! at cb (/usr/share/npm/lib/utils/npm-registry-client/request.js:31:9)
ERR! at Request._callback (/usr/share/npm/lib/utils/npm-registry-client/request.js:136:18)
ERR! at Request.callback (/usr/lib/nodejs/request/main.js:119:22)
ERR! at Request.<anonymous> (/usr/lib/nodejs/request/main.js:212:58)
ERR! at Request.emit (events.js:88:20)
ERR! at ClientRequest.<anonymous> (/usr/lib/nodejs/request/main.js:412:12)
ERR! at ClientRequest.g (events.js:156:14)
ERR! at ClientRequest.emit (events.js:67:17)
ERR! at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1256:7)
ERR! You may report this log at:
ERR! <http://bugs.debian.org/npm>
ERR! or use
ERR! reportbug --attach /home/pi/nefit-easy-client/npm-debug.log npm
ERR!
ERR! System Linux 4.1.7-v7+
ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install"
ERR! cwd /home/pi/nefit-easy-client
ERR! node -v v0.6.19
ERR! npm -v 1.1.4
ERR! message failed to fetch from registry: promise-queue

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
dutchsea schreef op woensdag 30 december 2015 @ 15:31:
ERR! node -v v0.6.19
ERR! npm -v 1.1.4
ERR! message failed to fetch from registry: promise-queue
Nog even ongeacht het niet kunnen installeren van promise-queue (EDIT: ik zie net dat die module minimaal Node 0.8 nodig heeft, dat is de reden voor het niet willen installeren) zal het sowieso niet gaan werken met die Node versie, ben ik bang. Je hebt minstens versie 4.0.0 nodig (je kunt hier ARM binaries downloaden van zowel Node 4 als 5).

PS: wat mij betreft kan iedereen dit soort issues ook in de GH issue tracker zetten (https://github.com/robertklep/nefit-easy-client/issues), dat is voor mij makkelijker :)

[ Voor 28% gewijzigd door brightvalve op 30-12-2015 16:16 ]


  • Holland23
  • Registratie: Maart 2013
  • Laatst online: 30-05-2023
jrking en brightvalve,

Dank voor jullie hulp

Heb node 5.3.0 geinstalleerd, en krijg het onderstaande resultaat. Gaaf!

pi@raspberrypi ~/nefit-easy-client $ node example/current-status.js
Temperature is set to 15.0°C, current is 20.0°C.
Outside temperature is 7.0°C.
System pressure is 0.9 bar.

[ Voor 4% gewijzigd door Holland23 op 31-12-2015 00:27 ]


  • grotegok
  • Registratie: April 2003
  • Laatst online: 07-05 20:24
thanks!

  • grotegok
  • Registratie: April 2003
  • Laatst online: 07-05 20:24
brightvalve schreef op woensdag 30 december 2015 @ 09:23:
@Holland23 @jrking je moet inderdaad minstens Node v4 gebruiken. Je zou een warning moeten krijgen bij oudere versies, maar dat blijkt niet te werken als je een npm install doet in een uitgecheckte repository.

Aan iedereen: ik wil de komende dagen nagaan hoe je commando's naar de Easy kunt opsturen, plus nog wat meer high-level commando's implementeren, en wellicht zelfs een CLI tool maken zodat je niet moeilijk hoeft te doen met JS code :-)
gaaf, ben erg benieuwd!

  • janne_nl
  • Registratie: Maart 2008
  • Laatst online: 17:52
Zie de uitleg op het Domoticz forum, daar staat een stappenplan.

Acties:
  • 0 Henk 'm!

  • dutchsea
  • Registratie: Oktober 2002
  • Laatst online: 30-05-2023
brightvalve schreef op woensdag 30 december 2015 @ 16:11:
[...]


Nog even ongeacht het niet kunnen installeren van promise-queue (EDIT: ik zie net dat die module minimaal Node 0.8 nodig heeft, dat is de reden voor het niet willen installeren) zal het sowieso niet gaan werken met die Node versie, ben ik bang. Je hebt minstens versie 4.0.0 nodig (je kunt hier ARM binaries downloaden van zowel Node 4 als 5).

PS: wat mij betreft kan iedereen dit soort issues ook in de GH issue tracker zetten (https://github.com/robertklep/nefit-easy-client/issues), dat is voor mij makkelijker :)
Opnieuw geinstalleerd naar upgrade naar node 4.0.0. Nieuwe issues hieronder. (Ook gepost op github)


pi@raspberrypi ~ $ npm install robertklep/nefit-easy-client [-g]
npm ERR! addLocal Could not install /home/pi/[-g]
npm ERR! Linux 4.1.13-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "robertklep/nefit-easy-client" "[-g]"
npm ERR! node v4.0.0
npm ERR! npm v2.14.2
npm ERR! path /home/pi/[-g]
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open

npm ERR! enoent ENOENT: no such file or directory, open '/home/pi/[-g]'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/npm-debug.log

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
dutchsea schreef op vrijdag 01 januari 2016 @ 21:35:
[...]

Opnieuw geinstalleerd naar upgrade naar node 4.0.0. Nieuwe issues hieronder. (Ook gepost op github)

[i]pi@raspberrypi ~ $ npm install robertklep/nefit-easy-client [-g]
Ik had je vraag al beantwoord op GH, maar voor de volledigheid: met [-g] wordt bedoeld dat de -g optie optioneel is. De rechte haken er omheen maken geen deel uit van de optie zelf.

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Heel goed dat je het hebt uitgevogeld! _/-\o_

Met smart wachtend op easy [options] set temperature <value> ;)

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
kraades schreef op vrijdag 01 januari 2016 @ 22:43:
Met smart wachtend op easy [options] set temperature <value> ;)
Die optie zou het al moeten doen, bij mij werkt 'ie in ieder geval :)

Als het bij jou niet werkt zou het kunnen liggen aan de huidige (user) mode van de thermostaat. Mocht het niet werken, kun je op Github een melding maken? Graag met de uitvoer van het status commando erbij.


Oh wacht ik heb iets verprutst met het uitlezen van de CLI opties. Issue hier.

EDIT: gefixt. Als je opnieuw installeert zou het moeten werken.

[ Voor 17% gewijzigd door brightvalve op 02-01-2016 08:32 ]


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
brightvalve schreef op zaterdag 02 januari 2016 @ 08:24:
EDIT: gefixt. Als je opnieuw installeert zou het moeten werken.
Geen errors maar volgens mij werkt het nog niet. Ik heb het als comment op github gezet.

root@linux:~/nefit-easy-client# ./bin/easy set temperature 20
{"status":"ok"}
root@linux:~/nefit-easy-client# node ./example/current-status.js
Temperature is set to 21.5°C, current is 22.2°C.
Outside temperature is 5.0°C.
System pressure is 1.9 bar.
root@linux:~/nefit-easy-client#


Edit:
Werkt alleen als de Easy op manual mode staat. Verdere communicatie is op github te vinden.


Edit2:
Is inmiddels opgelost in de code.

[ Voor 12% gewijzigd door technorabilia op 02-01-2016 17:29 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • dutchsea
  • Registratie: Oktober 2002
  • Laatst online: 30-05-2023
brightvalve schreef op vrijdag 01 januari 2016 @ 21:39:
[...]


Ik had je vraag al beantwoord op GH, maar voor de volledigheid: met [-g] wordt bedoeld dat de -g optie optioneel is. De rechte haken er omheen maken geen deel uit van de optie zelf.
"npm install robertklep/nefit-easy-client" heeft gewerkt!

$ node example/current-status.js
Temperature is set to 21.0°C, current is 21.0°C.
Outside temperature is 6.0°C.
System pressure is 25.5 bar.

Top!

Ter info, de optie -g heeft niet gewerkt. Resultaat:
pi@raspberrypiSD ~ $ node -v
v4.0.0
pi@raspberrypiSD ~ $ npm install robertklep/nefit-easy-client -g
npm ERR! tar.unpack untar error /home/pi/.npm/nefit-easy-client/1.0.2/package.tgz
npm ERR! Linux 4.1.13-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "robertklep/nefit-easy-client" "-g"
npm ERR! node v4.0.0
npm ERR! npm v2.14.2
npm ERR! path /usr/local/lib/node_modules/nefit-easy-client
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/nefit-easy-client'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/nefit-easy-client']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/nefit-easy-client',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/nefit-easy-client',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR! /home/pi/npm-debug.log

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Als pi user heb je niet genoeg rechten.
Probeer eens sudo voor het commando te zetten.
sudo npm install ...

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • dutchsea
  • Registratie: Oktober 2002
  • Laatst online: 30-05-2023
Yes, that worked

Acties:
  • 0 Henk 'm!

  • WouterG
  • Registratie: December 2000
  • Laatst online: 23:22

WouterG

Dit is geen ondertitel

Bedankt! Hier zat ik al een tijdje op te wachten. Het was even stoeien om het voor elkaar te krijgen maar ik krijg nu de data binnen.

Acties:
  • 0 Henk 'm!

  • janne_nl
  • Registratie: Maart 2008
  • Laatst online: 17:52
Ik heb een script dat nu elke minuut loopt. Kost ongeveer 10% cpu tijd op mijn Pi tijdens het ophalen van de data. Denk dat ik de tijd terug ga zetten naar eens per 5 minuten of zo.

Acties:
  • 0 Henk 'm!

  • WouterG
  • Registratie: December 2000
  • Laatst online: 23:22

WouterG

Dit is geen ondertitel

Ik ben benieuwd wat ze hiervan vinden bij Nefit. Hopen dat ze het niet actief tegen gaan werken.

Acties:
  • 0 Henk 'm!

  • janne_nl
  • Registratie: Maart 2008
  • Laatst online: 17:52
Ik zou me kunnen voorstellen dat ze het aantal calls per gebruiker gaan limiteren.

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
janne_nl schreef op dinsdag 05 januari 2016 @ 08:23:
Ik heb een script dat nu elke minuut loopt. Kost ongeveer 10% cpu tijd op mijn Pi tijdens het ophalen van de data. Denk dat ik de tijd terug ga zetten naar eens per 5 minuten of zo.
Ik ben bezig met het inbouwen van een HTTP-server in het easy commando, die gebruikt kan worden als doorgeefluik voor commando's. Het grote voordeel daarvan is dat je dan maar eenmalig een verbinding met de backend hoeft op te zetten (die, zolang de HTTP server draait, actief is).

Op dit moment wordt voor elk commando dat je vanaf de command line uitvoert een nieuwe verbinding met de backend opgezet, en dat is natuurlijk niet ideaal (zeker niet op beperkte hardware, het is vooral het opzetten van de verbinding en het authenticaten van de client dat rekenkracht vergt).

Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Ziet er goed uit, ik was er toevallig vanavond net mee bezig de informatie via json te exposen naar mijn lokale netwerk zodat ik dit in mijn fibaro kan uitlezen. Ik kreeg het niet aan de gang maar dat zal waarschijnlijk door mijn beperkte(eigenlijk niet) kennis van nodejs. Maar nu zie ik dat jij al een web server aan het inbouwen ben dus dan ga ik daar eens verder naar kijken.

De HTTP server lijkt hier goed te draaien maar het is mij niet geheel duidelijk hoe ik nou de calls kan doen vanuit bv mijn browser. Heb je toevallig een voorbeeldje van een url?

Update: blijkbaar moe je expliciet --host=10.0.0.8 meegeven om de api naar buiten te openen.

[ Voor 7% gewijzigd door Vaez op 05-01-2016 23:33 ]


Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Ik probeer de HTTP-server als achtergrond proces te laten draaien op mijn Qnap Nas, zodat ik deze altijd kan gebruiken vanaf mijn Fibaro. Maar zodra ik de sessie sluit, sluit de HTTP-server zich ook af. Ik heb al verschillende dingen geprobeerd om het als deamon process te draaien maar niks werkt. Is er toevallig een mogelijkheid dat er een parameter hiervoor wordt toegevoegd zodat dit wel mogelijk is?

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Vaez schreef op dinsdag 05 januari 2016 @ 23:26:
Ziet er goed uit, ik was er toevallig vanavond net mee bezig de informatie via json te exposen naar mijn lokale netwerk zodat ik dit in mijn fibaro kan uitlezen. Ik kreeg het niet aan de gang maar dat zal waarschijnlijk door mijn beperkte(eigenlijk niet) kennis van nodejs. Maar nu zie ik dat jij al een web server aan het inbouwen ben dus dan ga ik daar eens verder naar kijken.

De HTTP server lijkt hier goed te draaien maar het is mij niet geheel duidelijk hoe ik nou de calls kan doen vanuit bv mijn browser. Heb je toevallig een voorbeeldje van een url?

Update: blijkbaar moe je expliciet --host=10.0.0.8 meegeven om de api naar buiten te openen.
Of --host=0.0.0.0. De default (127.0.0.1) is bewust gekozen om te voorkomen dat iemand per ongeluk de zaak open zet (alhoewel dat binnen een thuisnetwerk over het algemeen geen probleem is).

Probeer het volgende eens om 'em naar de achtergrond te pushen:
code:
1
$ nohup easy serve &


Ik moet de server nog aanpassen en documenteren, de huidige implementatie zal wel wat veranderen.

EDIT: hier staat de documentatie voor de HTTP server, en zojuist heb ik versie 1.1.0 gepublished.

[ Voor 7% gewijzigd door brightvalve op 06-01-2016 10:38 ]


Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Bedankt, beide oplossingen lijken perfect te werken

Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Volgens mij werkt de http server niet meer op het moment dat je de android app hebt geopend. Hierna blijft namelijk een call oneindig hangen, alsof de authenticatie of iets dergelijks niet meer werkt. Na een herstart van easy serve werkt het weer prima namelijk.

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Vaez schreef op woensdag 06 januari 2016 @ 14:42:
Volgens mij werkt de http server niet meer op het moment dat je de android app hebt geopend. Hierna blijft namelijk een call oneindig hangen, alsof de authenticatie of iets dergelijks niet meer werkt. Na een herstart van easy serve werkt het weer prima namelijk.
Hmm daar zal ik eens naar kijken.

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Omdat de library een beetje bloat begon te vertonen heb ik de verschillende functionaliteiten uit elkaar getrokken en er aparte NPM packages van gemaakt:
  • nefit-easy-cli voor de CLI tool (dit is waarschijnlijk wat de meeste mensen willen installeren)
  • nefit-easy-http-server voor een standalone HTTP server (wat voorheen easy serve deed)
  • nefit-easy-commands voor een client library die wat high-level commando's implementeert
  • nefit-easy-core voor een client library die de basisfunctionaliteiten (comms met backend) implementeert
De "oude" nefit-easy-client library is bij deze dus deprecated ;w

Acties:
  • 0 Henk 'm!

  • janne_nl
  • Registratie: Maart 2008
  • Laatst online: 17:52
deprecated als in hij zit er nog in maar wordt niet meer ge-update? Of deprecated en hij is weg?
In het laatste geval moet ik goed plannen wanneer ik update, want dan doen mijn scripts het niet meer en moet ik die aanpassen.

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
janne_nl schreef op woensdag 06 januari 2016 @ 15:18:
deprecated als in hij zit er nog in maar wordt niet meer ge-update? Of deprecated en hij is weg?
In het laatste geval moet ik goed plannen wanneer ik update, want dan doen mijn scripts het niet meer en moet ik die aanpassen.
Als in "hij wordt niet meer geupdate", maar ik laat 'em nog wel staan :)

Acties:
  • 0 Henk 'm!

  • janne_nl
  • Registratie: Maart 2008
  • Laatst online: 17:52
super, kan ik de aanpassing in mijn eigen tempo doen, wanneer ik tijd/zin heb

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Ik zit eigenlijk ook wel te popelen, al moeten er misschien nog wat kinderziektes worden overwonnen.

Vraag: ik draai Domoticz op m'n Synology. Daar zal waarschijnlijk geen ondersteuning voor komen om dit op te draaien. Als er een package komt: prima, maar handmatig installeren wil ik niet op m'n Syno.

Nu heb ik boven ook een RPi draaien met Kodi. Kan ik niet e.e.a. op die RPi installeren en dan met Domoticz op de Syno weer uitlezen vanaf die RPi ? Misschien dat iemand daar wat over kan zeggen :) ?

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Ik heb ongeveer zo iets als jij hebt met je synology en rpi. Alleen dan andersom waar ik dus mijn qnap nas gebruik om de easy client te draaien en mijn fibaro gebruik om deze weer uit te lezen. In jou geval zou je dus hetzelfde kunnen proberen door de http client op je rpi te draaien en deze vanuit domoticz uitlezen. Ik heb niet erg veel ervaring met domoticz maar als ik het goed heb, heb je hier ook lua ondersteuning in waar je dus http calls kan doen en de json die terug komt netjes weer in kan verwerken.

Acties:
  • 0 Henk 'm!

Anoniem: 723789

M.v.Veelen schreef op woensdag 06 januari 2016 @ 19:44:
Vraag: ik draai Domoticz op m'n Synology. Daar zal waarschijnlijk geen ondersteuning voor komen om dit op te draaien. Als er een package komt: prima, maar handmatig installeren wil ik niet op m'n Syno.

Nu heb ik boven ook een RPi draaien met Kodi. Kan ik niet e.e.a. op die RPi installeren en dan met Domoticz op de Syno weer uitlezen vanaf die RPi ? Misschien dat iemand daar wat over kan zeggen :) ?
Voor een package op je NAS zal nog wel wat werk verzet moeten worden :)
Wat wel een optie is is om gebruik te maken van Node-RED (dit zit standaard ook in de Domoticz SD kaart image).

Op basis van deze library is ook een Node-RED node beschikbaar.
Check http://domoticz.com/forum/viewtopic.php?f=4&t=9653
Deze praat via MQTT met Domoticz, dus je zou Node-RED prima los van Domoticz op je Pi kunnen draaien.

Pepijn

Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
brightvalve schreef op woensdag 06 januari 2016 @ 15:07:
[...]


Hmm daar zal ik eens naar kijken.
Ik dacht dat dit na de update naar de nieuwe repository/losse applicatie opgelost is. Maar na een aantal keren de mobiele android app gebruikt te hebben, wat wijzigingen gemaakt te hebben en de http server bekeken om te zien wat er nou precies wijzigt bleef de call toch weer oneindig hangen en moest ik de applicatie herstarten.

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Anoniem: 723789 schreef op woensdag 06 januari 2016 @ 22:00:
[...]


Voor een package op je NAS zal nog wel wat werk verzet moeten worden :)
Wat wel een optie is is om gebruik te maken van Node-RED (dit zit standaard ook in de Domoticz SD kaart image).

Op basis van deze library is ook een Node-RED node beschikbaar.
Check http://domoticz.com/forum/viewtopic.php?f=4&t=9653
Deze praat via MQTT met Domoticz, dus je zou Node-RED prima los van Domoticz op je Pi kunnen draaien.

Pepijn
Ik weet niet of ik je goed begrijp, maar ik heb Domoticz dus op mijn Synology draaien. Ik heb dus geen image gebruikt, maar een package voor de Synology. Daar zit geen Node-Red in. En ik denk dat ik me nog behoorlijk moet inlezen, want MQTT.....?? Ik ga denk ik nog maar even in de wachtstand en proberen te lezen (en begrijpen) wat er allemaal benodigd is voordat ik ermee aan de slag ga.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
Vaez schreef op donderdag 07 januari 2016 @ 01:14:
Ik dacht dat dit na de update naar de nieuwe repository/losse applicatie opgelost is. Maar na een aantal keren de mobiele android app gebruikt te hebben, wat wijzigingen gemaakt te hebben en de http server bekeken om te zien wat er nou precies wijzigt bleef de call toch weer oneindig hangen en moest ik de applicatie herstarten.
Het lijkt erop alsof de server het eerste request dat volgt op een request vanaf een andere client (de app) niet beantwoordt (dat, of ik snap het XMPP protocol nog niet goed genoeg, iets dat ik niet uitsluit :)).

Ik heb nu een request timeout geïmplementeerd (default 30 seconden maar is aan te passen via --timeout), zodat je de zaak niet steeds opnieuw hoeft op te starten (eventuele nieuwe requests worden gequeued en uitgevoerd zodra het "hangende" request een timeout krijgt).

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
M.v.Veelen schreef op donderdag 07 januari 2016 @ 09:36:
[...]


Ik weet niet of ik je goed begrijp, maar ik heb Domoticz dus op mijn Synology draaien. Ik heb dus geen image gebruikt, maar een package voor de Synology. Daar zit geen Node-Red in. En ik denk dat ik me nog behoorlijk moet inlezen, want MQTT.....?? Ik ga denk ik nog maar even in de wachtstand en proberen te lezen (en begrijpen) wat er allemaal benodigd is voordat ik ermee aan de slag ga.
Ligt eraan wat je wil doen. Als je bv. alleen de temp wilt zetten o.b.v. bepaalde events dan kun je uit de voeten met nodejs en de easy client.
Er is een Synocommunity package voor nodejs maar dat is een te lage versie. Je hebt min. v4.0 nodig.
Je hebt een DS414 zo te zien met een ARM. Je kunt de prebuild nodejs binaries proberen. En anders zelf (cross)compileren.

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Hey kraades. Kon ik dat maar en wist ik maar hoe dat werkte. Heb daar echt geen kaas van gegeten.
En wat ik wil? Zoveel mogelijk, hahaha. Liefst alles uit kunnen lezen en ook de temperatuur instellen via Domoticz. Ik zie dat er stapje voor stapje verbeteringen komen en zou het liefst alles op de Syno hebben staan, maar zoals gezegd: ik heb geen idee hoe dat te bewerkstelligen.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Wordt lastig denk ik met Node-RED etc. op een Synology.
Jouw DS heeft volgens mij een ARM V7 dus je kunt eens kijken of de prebuild binaries werken.
https://nodejs.org/en/download/
Kwestie van uitpakken en node -v uitvoeren.
Dan kun je in ieder geval eens kijken of je de Nefit kunt aansturen met de easy client op de Syno...

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Moet ik dan het package (de te oude versie) installeren op de Syno, en dan met SSH dit package uitpakken ofzo? Moet dat dan in een specifiek pad? Ik heb geen idee waar te beginnen hoor, en wil zeker niet de Syno om zeep helpen. Als er ergens een beschrijving is van hoe ik dit stap voor stap kan doen, dan wil ik daar graag naar kijken. Maar voor nu ben ik echt blanco wat dit betreft.

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
offtopic:
Stap 1
Download https://nodejs.org/dist/v...4.2.4-linux-armv7l.tar.gz en pak deze om te testen ergens uit in een temp directory ergens bv. in de home directory.
Voer dan uit ~/node-v4.2.4-linux-armv7l/bin/node -v.
Als dat werkt praten we verder... ;)

Zoiets:
cd
wget https://nodejs.org/dist/v...4.2.4-linux-armv7l.tar.gz
tar xzf node-v4.2.4-linux-armv7l.tar.gz
./node-v4.2.4-linux-armv7l/bin/node -v

[ Voor 25% gewijzigd door technorabilia op 07-01-2016 12:05 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Zie nu pas je aanpassingen.

Heb de stappen gevolgd en krijg dan te zien:

DiskStation> ./node-v4.2.4-linux-armv7l/bin/node -v
v4.2.4

Moeten we verder via DM ofzo?

[ Voor 61% gewijzigd door M.v.Veelen op 07-01-2016 12:14 ]

¯\_(ツ)_/¯


Acties:
  • +2 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Ah, dat is mooi. Dan hoef je niet te compileren en zijn we weer on-topic. ;)

Om node te kunnen vinden kun je tijdelijk even doen:
export PATH=$HOME/node-v4.2.4-linux-armv7l/bin:$PATH

Daarna de nefit client ergens plaatsen: https://github.com/robertklep/nefit-easy-client (ik zie dat deze al deprecated is maar om te testen prima)
./bin/easy set temperature 20
Zie https://github.com/robert...master/lib/cli/docopt.txt.
Vergeet serial e.d. niet te zetten.

[ Voor 12% gewijzigd door technorabilia op 07-01-2016 13:07 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Hoe plaats ik die client ergens? En waar? Wat is deprecated?

Edit:

bij 3 loop ik vast. npm kent ie niet?

1. git clone https://github.com/robertklep/nefit-easy-client (if you need to update later on, issue the following: git pull https://github.com/robertklep/nefit-easy-client)
2. cd nefit-easy-client
3. npm install
4. export NEFIT_SERIAL_NUMBER= insert your serial number here
5. export NEFIT_ACCESS_KEY= you get the point
6. export NEFIT_PASSWORD= ""

[ Voor 77% gewijzigd door M.v.Veelen op 07-01-2016 14:39 ]

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
M.v.Veelen schreef op donderdag 07 januari 2016 @ 13:47:
Hoe plaats ik die client ergens? En waar? Wat is deprecated?
Om te testen gewoon ff downloaden.
https://github.com/robert...client/archive/master.zip
Uitpakken en dan:
export PATH=$HOME/node-v4.2.4-linux-armv7l/bin:$PATH
export NEFIT_SERIAL_NUMBER= insert your serial number here
export NEFIT_ACCESS_KEY= you get the point
export NEFIT_PASSWORD= ""
Hierna:
./nefit-easy-client-master/bin/easy set temperature 20

Deprecated. Achterhaald. Niet langer bijgewerkt.

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
So far so good. Ik kreeg geen toegang, dus heb de CHMOD aangepast. Krijg nu alleen de melding:

DiskStation> ./nefit-easy-client-master/bin/easy set temperature 20
env: node: No such file or directory

Hij ziet dan het pad naar node niet ?

Ik heb het nu (omdat er geen home directory op de Syno staat) als volgt:

\volume1\Testmap\nefit-easy-client-master
\volume1\Testmap\node-v4.2.4-linux-armv7l

en geeft de commando's vanuit \volume1\Testmap\

Als ik opgeef:

DiskStation> export PATH=/volume1/Testmap/node-v4.2.4-linux-armv7l/bin:$PATH

En dan:

DiskStation> ./nefit-easy-client-master/bin/easy set temperature 20

krijg ik dit:

module.js:340
throw err;
^

Error: Cannot find module 'docopt'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/volume1/Testmap/nefit-easy-client-master/lib/cli/index.js:3:14)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)

[ Voor 46% gewijzigd door M.v.Veelen op 07-01-2016 15:47 ]

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Hm... Mogelijk moet NODE_PATH nog worden gezet?

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Ook na:

export NODE_PATH=$NODE_PATH:/volume1/Testmap/node-v4.2.4-linux-armv7l/lib/node_modules

krijg ik dezelfde foutmelding.

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
kraades schreef op donderdag 07 januari 2016 @ 16:42:
Hm... Mogelijk moet NODE_PATH nog worden gezet?
Nee, het probleem is dat je niet zomaar master.zip kunt downloaden, uitpakken en dan de zaak draaien. Daar mis namelijk nog een cruciale stap tussen, npm install, om alle dependencies te installeren (waaronder docopt).

Je ontkomt er dus niet aan om ook npm te installeren, vrees ik.

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Tips over hoe ik dat ook nog kan installeren op de Synology? Of gaat dit de showstopper worden ;)

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Npm heb je wel toch? In de bin directory waar ook node staat zie ik ook een npm...
brightvalve schreef op donderdag 07 januari 2016 @ 17:22:
[...]


Nee, het probleem is dat je niet zomaar master.zip kunt downloaden, uitpakken en dan de zaak draaien. Daar mis namelijk nog een cruciale stap tussen, npm install, om alle dependencies te installeren (waaronder docopt).

Je ontkomt er dus niet aan om ook npm te installeren, vrees ik.
Duidelijk. Wist ik niet.

[ Voor 75% gewijzigd door technorabilia op 07-01-2016 19:10 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Ik ben in de folder gaan staan waar npm staat en daarna

npm install ingegeven. Dit resulteerde in:

DiskStation> npm install
npm WARN package.json npm@2.14.12 Non-dependency in bundleDependencies: ansi-regex
npm WARN package.json npm@2.14.12 Non-dependency in bundleDependencies: spdx-license-ids
npm WARN package.json npm@2.14.12 Non-dependency in bundleDependencies: strip-ansi
WARN engine follow@0.12.1: wanted: {"node":"0.12.x || 0.10.x || 0.8.x"} (current: {"node":"4.2.4","npm":"2.14.12"})
npm WARN cannot run in wd npm@2.14.12 node bin/npm-cli.js prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc (wd=/volume1/Testmap/node-v4.2.4-linux-armv7l/lib/node_modules/npm)
deep-equal@1.0.1 node_modules/deep-equal

sprintf-js@1.0.3 node_modules/sprintf-js

marked@0.3.5 node_modules/marked

require-inject@1.3.0 node_modules/require-inject
└── caller@1.0.1

marked-man@0.1.5 node_modules/marked-man

npm-registry-mock@1.0.1 node_modules/npm-registry-mock
├── util-extend@1.0.1
└── hock@0.2.5 (deep-equal@0.2.1)

nock@1.9.0 node_modules/nock
├── propagate@0.3.1
├── lodash@2.4.1
├── debug@1.0.4 (ms@0.6.2)
└── chai@1.10.0 (assertion-error@1.0.0, deep-eql@0.1.3)

tap@2.2.1 node_modules/tap
├── tmatch@1.0.2
├── supports-color@1.3.1
├── only-shallow@1.2.0
├── deeper@2.1.0
├── signal-exit@2.1.2
├── tap-parser@1.2.2 (events-to-array@1.0.2)
├── readable-stream@2.0.5 (string_decoder@0.10.31, isarray@0.0.1, process-nextick-args@1.0.6, util-deprecate@1.0.2, core-util-is@1.0.2)
├── foreground-child@1.3.4 (cross-spawn-async@2.1.6)
├── codecov.io@0.1.6 (request@2.42.0, urlgrey@0.4.0)
├── coveralls@2.11.6 (lcov-parse@0.0.6, log-driver@1.2.4, minimist@1.2.0, js-yaml@3.0.1, request@2.67.0)
├── nyc@3.2.2 (strip-bom@2.0.0, yargs@3.31.0, lodash@3.10.1, istanbul@0.3.22)
├── tap-mocha-reporter@0.0.22 (diff@1.4.0, escape-string-regexp@1.0.4, glob@6.0.3, debug@2.2.0, readable-stream@1.1.13, unicode-length@1.0.0)
└── js-yaml@3.4.6 (inherit@2.2.2, esprima@2.7.1, argparse@1.0.3)

npm-registry-couchapp@2.6.11 node_modules/npm-registry-couchapp
├── semver@4.3.6
├── json@9.0.3
└── couchapp@0.11.0 (watch@0.8.0, coffee-script@1.10.0, url@0.11.0, connect@3.4.0, http-proxy@0.8.7, nano@6.1.5)

Maar vervolgens krijg ik toch nog dezelfde melding bij de status opvragen:

DiskStation> ./nefit-easy-client-master/bin/easy status
module.js:340
throw err;
^

Error: Cannot find module 'docopt'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:289:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (/volume1/Testmap/nefit-easy-client-master/lib/cli/index.js:3:14)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)

Ik denk toch dat ik teveel offtopic ga hier, maar hoop ergens dat ik er bijna ben. Ik snap alleen ook niet waarom ik nu deze "deprecated" versie heb, is er nu dan weer iets anders om de Easy te bedienen / uit te lezen dan :s ?

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Npm werkt wel toch? Als je npm -v doet dan krijg je het versienummer?
Npm install moet je denk ik in de easy directory doen waar de package.json staat.

Deprecated omdat er nu andere meer gescheiden packages zijn. Netter, cleaner etc.
Zie readme op https://github.com/robertklep/nefit-easy-client.

N.B.
Als je dit hebt dan heb je geen integratie in Domoticz zoals je met Node-RED hebt.
Om een teleurstelling te voorkomen... ;)

[ Voor 18% gewijzigd door technorabilia op 07-01-2016 20:20 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Ik heb het ook in de directory gedaan....

Doh.....ik wil juist integratie in Domoticz. Grrr..... :) Dan houdt het hier op en hoop ik maar dat er iets ontwikkelt wordt voor de Syno's.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
M.v.Veelen schreef op donderdag 07 januari 2016 @ 20:34:
Ik heb het ook in de directory gedaan....
Toch niet in de directory die in de (uitgepakte) master.zip zit (die directory heet nefit-easy-client-master), zo te zien. Want de dependencies in de log die je laat zien horen niet bij nefit-easy-client.

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Oei....je hebt gelijk. Net gedaan en dat ging beter.

Bij het opvragen van de status krijg ik echter:

DiskStation> ./nefit-easy-client-master/bin/easy status
[SyntaxError: Unexpected token]

Ik ben nu wel heel dichtbij toch :) ?

Edit: kan ik ergens controleren of het serienummer, wachtwoord, enz. goed zijn doorgevoerd? Want bij het instellen van de temperatuur krijg ik:

./nefit-easy-client-master/bin/easy set temperature 20
{ [Error: INVALID_RESPONSE]
response:
{ protocolVersion: 'HTTP/1.0',
statusCode: '400',
statusMessage: 'Bad Request',
headers: { 'Content-Type': 'application/json', connection: 'close' },
body: '' } }

Edit 2:

My bad. Het ww had ik verkeerd ingevoerd. Ik krijg nu een "OK" terug 8)

[ Voor 54% gewijzigd door M.v.Veelen op 07-01-2016 21:38 ]

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Goed, ik heb de "deprecated" versie nu werkend. Kan ik nu een volgende stap maken en de huidige installeren / gebruiken? Waar kan ik wat lezen over hoe dit dan verder in zijn werk gaat met Domoticz :) ? Goed man, ik kan nu mbv de CLI alles instellen en opvragen wat ik wil. Maar nu de volgende stap..... :D

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Mooi! Je bent denk ik de eerste op een Syno.

Hier staan de huidige packages: brightvalve in "Nefit Easy: XMPP protocol ontcijferen"

Wat je nu bv. kunt doen in Domoticz is de easy client verwerken in een bash script. En deze koppelen aan een switch of een event. Zo kun je bv. a.h.v. geofencing je ketel uit of aan zetten. Of als je de lampen uit doet / gaat slapen ook de temp omlaag. Etc.

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
brightvalve schreef op donderdag 07 januari 2016 @ 10:42:
[...]


Het lijkt erop alsof de server het eerste request dat volgt op een request vanaf een andere client (de app) niet beantwoordt (dat, of ik snap het XMPP protocol nog niet goed genoeg, iets dat ik niet uitsluit :)).

Ik heb nu een request timeout geïmplementeerd (default 30 seconden maar is aan te passen via --timeout), zodat je de zaak niet steeds opnieuw hoeft op te starten (eventuele nieuwe requests worden gequeued en uitgevoerd zodra het "hangende" request een timeout krijgt).
Dankje, ik heb nu geupdate en ga het nog een keer proberen. Ik zal het in de gaten houden en laten horen of het nu beter gaat.

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
kraades schreef op donderdag 07 januari 2016 @ 22:01:
Mooi! Je bent denk ik de eerste op een Syno.

Hier staan de huidige packages: brightvalve in "Nefit Easy: XMPP protocol ontcijferen"

Wat je nu bv. kunt doen in Domoticz is de easy client verwerken in een bash script. En deze koppelen aan een switch of een event. Zo kun je bv. a.h.v. geofencing je ketel uit of aan zetten. Of als je de lampen uit doet / gaat slapen ook de temp omlaag. Etc.
Dat is sowieso iets wat ik kan gaan doen, scripten, maar ik zou ook graag dit toevoegen in Domoticz zodat ik de status / temp kan aflezen zoals ze hier doen: timovd in "Domoticz - open source domotica systeem - deel 2"
Is dat al mogelijk? Of wil ik nu teveel tegelijk.... :)

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 22:57
Zoals kraades zegt kun je het in een script gooien, Bash (.sh extensie) is dan wel vrij eenvoudig als beginner denk ik.
In het script trek je dan de waardes die je wilt hebben uit de verkregen output en stop je in variabelen: $kamertemperatuur, $setpoint etc. Die variabelen kun je dan met een curl-regel weer in een virtuele sensor in Domoticz pompen: http://domoticz.com/wiki/Domoticz_API/JSON_URL%27s

En andersom kun je vanuit Domoticz weer een script aanroepen die de waarde vanuit Domoticz haalt (virtueel thermostaat device) en het in die Nefit client stopt.

[ Voor 22% gewijzigd door ThinkPad op 07-01-2016 22:20 ]


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Dat wordt copy-pasten uit scripts en kijken of ik iets werkends kan fabriceren.

Blijft alleen de vraag of het met de andere (nieuwe) scripts ook in Domoticz valt te integreren / uit te lezen.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
M.v.Veelen schreef op donderdag 07 januari 2016 @ 22:30:
Blijft alleen de vraag of het met de andere (nieuwe) scripts ook in Domoticz valt te integreren / uit te lezen.
Ik weet niet of dit het juiste topic is. Misschien beter switchen naar het Synology of juist het Domoticz topic?

Maar...
Het goede nieuws is dat je Synology ook draait met de ARMv7 binaries.
Dus ik denk dat het dezelfde binaries zijn die op de RPi worden gebruikt.
Verder zouden Node-RED en MQTT ook via npm geinstalleerd moeten kunnen worden en node en npm heb je werkend.

Ik vind wel e.e.a. over het installeren via npm maar hoe dit precies werkt en of dit de juiste commando's zijn...en of dit gaat werken op een Syno...weet ik eerlijk gezegd niet...
https://www.domoticz.com/wiki/MQTT#Installing_software
http://nodered.org/docs/hardware/raspberrypi.html
https://www.npmjs.com/package/mqtt#install

Alternatief is -als ik het goed begrijp- om delen van de opzet op andere hardware onder te brengen...
Afbeeldingslocatie: http://i.imgur.com/LwbdcBit.png

[ Voor 8% gewijzigd door technorabilia op 08-01-2016 09:12 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • TrafeX
  • Registratie: Maart 2003
  • Laatst online: 07-05 00:50

TrafeX

Tuned for life!

@brightvalve Bedankt voor je werk, hier heb ik (en vele andere) lang op gewacht!

Ik ben zelf even bezig geweest te zorgen dat een aantal gegevens van m'n Nefit Easy in InfluxDB terecht komen zodat ik daar wat grafieken van kan maken met Grafana:
https://github.com/TrafeX/nefiteasy-influxdb

Dit doet elke 10 seconde een request naar de API, maar ik vermoed dat dit teveel is geweest.
Na een aantal uur kreeg ik alleen nog maar request timeouts. Vanaf een ander IP adres werkt het nog wel.

Let dus op dat je niet teveel requests gaat doen, de kans is groot dat je geblokkeerd wordt!

TrafeX.nl - Clipboard.ninja


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Hm, dus je externe IP is geblokkeerd en nu kun je de Nefit ook niet meer bedienen met de app bijvoorbeeld?

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
TrafeX schreef op vrijdag 08 januari 2016 @ 09:19:
Dit doet elke 10 seconde een request naar de API, maar ik vermoed dat dit teveel is geweest.
Na een aantal uur kreeg ik alleen nog maar request timeouts. Vanaf een ander IP adres werkt het nog wel.
Het is absoluut niet nodig om voor elk commando een nieuwe verbinding met de backend op te zetten. Als je dat eenmalig doet aan het begin van je script en vervolgens elke 10 seconden over die verbinding een paar commando's stuurt kan ik me niet voorstellen dat dat veel impact heeft op de backend.

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
brightvalve schreef op vrijdag 08 januari 2016 @ 10:12:
[...]


Het is absoluut niet nodig om voor elk commando een nieuwe verbinding met de backend op te zetten. Als je dat eenmalig doet aan het begin van je script en vervolgens elke 10 seconden over die verbinding een paar commando's stuurt kan ik me niet voorstellen dat dat veel impact heeft op de backend.
Ok, en daarvoor heb je de server variant gemaakt. Goed om te weten.
https://github.com/robert...e711de8c798b24c7a409b1f96

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • TrafeX
  • Registratie: Maart 2003
  • Laatst online: 07-05 00:50

TrafeX

Tuned for life!

kraades schreef op vrijdag 08 januari 2016 @ 09:33:
Hm, dus je externe IP is geblokkeerd en nu kun je de Nefit ook niet meer bedienen met de app bijvoorbeeld?
Het externe IP van de server waarvandaan ik het script draaide is geblokkeerd. Ik kan de app nog prima gebruiken (gelukkig!) ;)
brightvalve schreef op vrijdag 08 januari 2016 @ 10:12:
[...]


Het is absoluut niet nodig om voor elk commando een nieuwe verbinding met de backend op te zetten. Als je dat eenmalig doet aan het begin van je script en vervolgens elke 10 seconden over die verbinding een paar commando's stuurt kan ik me niet voorstellen dat dat veel impact heeft op de backend.
Ah, dat klinkt aannemelijk, ik ga het script erop aanpassen en kijken of dat beter gaat.

TrafeX.nl - Clipboard.ninja


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
TrafeX schreef op vrijdag 08 januari 2016 @ 11:30:
Het externe IP van de server waarvandaan ik het script draaide is geblokkeerd. Ik kan de app nog prima gebruiken (gelukkig!) ;)
Ik denk eigenlijk niet dat er iets geblokkeerd is, die timeouts kunnen alleen het gevolg zijn van requests die gestuurd worden nadat de client al bij de backend is aangemeld.

Wat logischer is, is dat je door het opzetten van een nieuwe verbinding elke 10 seconden jezelf in de weg gaat zitten. Als de limiet aan de backend is ingesteld op 5 concurrent clients, en de request timeout staat op 30 seconden, dan kan het zomaar gebeuren dat jouw code al 3 connecties open heeft staan.

Daarnaast werkt m'n lib niet goed als er meerdere clients actief zijn, dan krijg je die timeouts (dat is iets dat in mijn code zit, maar ik moet er nog even goed naar kijken om te snappen wat er precies aan de hand is).

Ik verwacht dat je problemen opgelost zullen zijn als je alles over één verbinding doet, en dat je dan ook weer gewoon vanaf je server die verbindingen op kunt zetten.

Daarnaast kan ik je aanraden om geen setInterval te gebruiken, maar setTimeout (en die dan elke keer, zodra je een response hebt gekregen, opnieuw instellen). Anders kan het gebeuren dat er meerdere requests gequeued moeten worden omdat er één niet (meteen) een response krijgt. Dat is op zich geen probleem, maar een beetje nutteloos, zeker als het steeds om hetzelfde commando gaat.

[ Voor 16% gewijzigd door brightvalve op 08-01-2016 12:05 ]


Acties:
  • 0 Henk 'm!

  • TrafeX
  • Registratie: Maart 2003
  • Laatst online: 07-05 00:50

TrafeX

Tuned for life!

Je had gelijk, ik heb het aangepast zodat dezelfde connectie herbruikt wordt en het draait weer als een zonnetje! Alsnog heb ik de interval naar elke 30 seconden gezet, dat is voldoende.

Nu nog uitzoeken hoe ik meer interessante informatie eruit kan halen zoals wanneer de CV aan het verwarmen is of tapwater gebruikt wordt.

TrafeX.nl - Clipboard.ninja


Acties:
  • +1 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
TrafeX schreef op vrijdag 08 januari 2016 @ 14:02:
Nu nog uitzoeken hoe ik meer interessante informatie eruit kan halen zoals wanneer de CV aan het verwarmen is of tapwater gebruikt wordt.
Het status commando geeft het veld boiler indicator terug, dat drie waarden kan hebben: "central heating", "hot water" en "off". Daarmee kun je uitlezen wat de CV nu aan het doen is.

Acties:
  • 0 Henk 'm!

  • TrafeX
  • Registratie: Maart 2003
  • Laatst online: 07-05 00:50

TrafeX

Tuned for life!

Bedankt, dat was me nog niet duidelijk, heb ze toegevoegd!
Kan jij me ook vertellen waar `ps active` en `fp active` voor staan?

TrafeX.nl - Clipboard.ninja


Acties:
  • 0 Henk 'm!

  • rostyk
  • Registratie: Januari 2016
  • Laatst online: 15-03-2021
`fp active` = fireplace mode on (continue heating even when maximum setpoint temperature reached)

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

zijn er nu ook waardes zoals stroom verbruik af te lezen ?

Tja vanalles


Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
vso schreef op vrijdag 08 januari 2016 @ 15:38:
zijn er nu ook waardes zoals stroom verbruik af te lezen ?
Laat de Android/iOS app die waarde ergens zien?

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

brightvalve schreef op vrijdag 08 januari 2016 @ 16:05:
[...]


Laat de Android/iOS app die waarde ergens zien?
Nog niet er waren plannen voor, de kans is er dus dat het inmiddels wel (gedeeltelijk?) geïmplementeerd is ..
Daarnaast zou het leuk zijn als je dagelijks verbruik wat gedetailleerder eruit zou kunnen halen.

Ik weet niet of je bv een "get list available commands" mogelijk is ?

Tja vanalles


Acties:
  • 0 Henk 'm!

  • TrafeX
  • Registratie: Maart 2003
  • Laatst online: 07-05 00:50

TrafeX

Tuned for life!

rostyk schreef op vrijdag 08 januari 2016 @ 15:34:
`fp active` = fireplace mode on (continue heating even when maximum setpoint temperature reached)
en 'ps active' = 'powersave active' kwam ik achter. Zodra je het groene blaadje ziet is deze actief.

TrafeX.nl - Clipboard.ninja


Acties:
  • 0 Henk 'm!

  • rostyk
  • Registratie: Januari 2016
  • Laatst online: 15-03-2021
vso schreef op vrijdag 08 januari 2016 @ 16:31:
[...]

Nog niet er waren plannen voor, de kans is er dus dat het inmiddels wel (gedeeltelijk?) geïmplementeerd is ..
Daarnaast zou het leuk zijn als je dagelijks verbruik wat gedetailleerder eruit zou kunnen halen.

Ik weet niet of je bv een "get list available commands" mogelijk is ?
No power, no burner power, no modulation, no pump modulation, no gas/air pressure, no exhaust gas temperature. If you want this choose different vendor of CV-ketel ;)

You can collect only active time per day used for hot water and heating separately (data which you can see in Graphs panel in Nefit Easy iOS/Android app)

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

rostyk schreef op vrijdag 08 januari 2016 @ 16:42:
[...]

No power, no burner power, no modulation, no pump modulation, no gas/air pressure, no exhaust gas temperature. If you want this choose different vendor of CV-ketel ;)

You can collect only active time per day used for hot water and heating separately (data which you can see in Graphs panel in Nefit Easy iOS/Android app)
Ik wil dit wel, maar ga niet geld uitgeven als het niet nodig is :) en het is nice to have not need to have
ik hoop dat dit wel in de toekomst komt

ps NL reacties worden gewaardeerd door de moderators ;)

Tja vanalles


Acties:
  • +1 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
vso schreef op vrijdag 08 januari 2016 @ 16:31:
Ik weet niet of je bv een "get list available commands" mogelijk is ?
Zoiets?

Acties:
  • 0 Henk 'm!

  • brightvalve
  • Registratie: December 2011
  • Laatst online: 08-05 07:53
TrafeX schreef op vrijdag 08 januari 2016 @ 16:37:
en 'ps active' = 'powersave active' kwam ik achter. Zodra je het groene blaadje ziet is deze actief.
Ik had al gezien dat het "iets" met eco-mode te maken had, mooi gevonden! Ik zal de lijst van properties uitbreiden zodat fp/ps er wat duidelijker in staan (ik zal de oude props laten staan voor als er iemand van afhankelijk is, kost toch niet veel ruimte).

Acties:
  • 0 Henk 'm!

  • vso
  • Registratie: Augustus 2001
  • Niet online

vso

tja...

Tja vanalles


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
Ik heb inmiddels node-RED ook aan de praat op m'n Synology. Heb wat hulp / tips gehad van pepijn :)
Volgende keer weer verder om te zien of ik er ook mee kan doen wat ik ermee wil doen. In de tussentijd veel lezen.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
M.v.Veelen schreef op vrijdag 08 januari 2016 @ 22:43:
Ik heb inmiddels node-RED ook aan de praat op m'n Synology. Heb wat hulp / tips gehad van pepijn :)
Volgende keer weer verder om te zien of ik er ook mee kan doen wat ik ermee wil doen. In de tussentijd veel lezen.
Met npm commando? Mqtt ook erbij?

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • Vaez
  • Registratie: Juni 2009
  • Laatst online: 23:22
Is er nou ook een methode in de api die het aanpassen van temperatuur compleet afhandelt? Mijn conclusie na wat uitzoeken is eigenlijk dat je 3 manieren hebt op de thermostaat om de temperatuur aan te passen:

- Klok programma
- Override van klok programma
- Handmatig

Als ik bv "bridge/heatingCircuits/hc1/temperatureRoomManual" aanroep veranderd dit alleen de temperatuur van het handmatige programma. Oftewel als de thermostaat op klokprogramma staat gebeurd er eigenlijk niks. Hiervoor moet ik dus eerst de modus wijzigen en dan pas de temperatuur handmatig opschakelen. Of eerst de override aanzetten en dan de temperatuur omhoog doen.

De vraag is dus eigenlijk is er toevallig ook 1 methode die de temperatuur voor de op dit moment gebruikte stand veranderd? Voor de gezette temperatuur is dit er namelijk wel (value.TSP in uiStatus). Deze klopt altijd wat voor stand je ook gebruikt.

Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Hier is e.e.a. over gezegd in:
https://github.com/robert.../4#issuecomment-168811013
Volgens mij worden nu alle drie de commando's gegeven bij een set temperature.
https://github.com/robert...ea94ecf48b78ee2958261bf1a

[ Voor 26% gewijzigd door technorabilia op 09-01-2016 13:45 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 05-05 17:08
kraades schreef op zaterdag 09 januari 2016 @ 09:56:
[...]


Met npm commando? Mqtt ook erbij?
Ja. Mosquitto bleek een package van te zijn, dus die ook geïnstalleerd. Ik neem aan dat dat goed is. Maar hoe nu verder..... Zal wat verder moeten inlezen.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Je kunt dan de node-red spullen van pepijn eens proberen te importeren. Ik ben benieuwd.

Zie domoticz forum voor de definitie...

[ Voor 19% gewijzigd door technorabilia op 09-01-2016 18:51 ]

👉🏻 Blog 👈🏻


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Topwerk! Ik heb lang gezocht op internet naar iemand die dit uitgeplozen had (zonder resultaat), maar uiteindelijk vind ik het heel dicht bij huis: mijn vertrouwde tweakers.net.

Op basis van dit topic (en http://wiki.xmpp.org/web/SASLandDIGEST-MD5) is het me gelukt om in php de authenticatie voor elkaar te krijgen. Het gaat echter spaak bij de laatste stappen in de genoemde link (het starten van de sessie). Nadat ik een success terugkrijg, moet ik een leeg bericht sturen (stap 4). Dit doe ik, en ik krijg vervolgens netjes een antwoord. Ik heb geprobeerd stap 5 te doen, maar hier wordt niet goed op gereageerd. Of moet ik iets met het antwoord op stap 4 doen?

Kan iemand me helpen om het laatste restje voor elkaar te krijgen?

Overigens, mijn doel is in eerste instantie om via php een mysql-database te vullen met temperaturen, etc. Omdat ik een synology heb, leek een php-script met cronjob me eenvoudiger dan proberen om de synology-installatie hierboven te doen. Ik ben (nog >:) ) niet van plan om een full-blown php-client te bouwen waarmee je je nefit-easy kunt aansturen.

Update: dump van de communicatie
code:
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
1452373269 [INFO]: Connecting to tcp://wa2-mz36-qrmzh6.bosch.de:5222
1452373269 [VERBOSE]: Socket is ready; send it.
1452373269 [VERBOSE]: SENT: <stream:stream to="wa2-mz36-qrmzh6.bosch.de" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0">
1452373269 [VERBOSE]: Successfully sent 129 bytes.
1452373269 [VERBOSE]: RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="wa2-mz36-qrmzh6.bosch.de" id="c5d0597d" xml:lang="en" version="1.0">
1452373269 [VERBOSE]: RECV: <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>DIGEST-MD5</mechanism></mechanisms><auth xmlns="http://jabber.org/features/iq-auth"/></stream:features>
1452373269 [DEBUG]: Calling features_handler
1452373269 [VERBOSE]: Socket is ready; send it.
1452373269 [VERBOSE]: SENT: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>
1452373269 [VERBOSE]: Successfully sent 71 bytes.
1452373270 [VERBOSE]: RECV: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVMi1tejM2LXFybXphbG09IndhoNi5ib3NjaC5kZSIsbm9uY2U9Imx1dlZUNExTMnRiRTNhcnlIZ2F5bXdLejI1S2QyMUxoZFVoZ2NtRzgiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
1452373270 [DEBUG]: Calling challenge_handler
1452373270 [INFO]: Received challenge. Attempting to solve challenge...
1452373270 [VERBOSE]: Socket is ready; send it.
1452373270 [VERBOSE]: SENT: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>dXNlcm5hbWU9InJyY2NvbnRhY3IixyZWFsbT0id2EyLW16MzYtcXJtemg2LmJvc2NoLmRlIixub25jZT0ibHV2VlQ0TFMydGJFM2FyeUhnYXltd0t6MjVLZDIxTGhkVWhnY2RfNTE5OTExMjEw1HOCIsY25vbmNlPSIwNDdGRkI0Ny1DM0VGLTQwQzktQTgwNS0wMTdGQTlCQzk1NkMiLG5jPTAwMDAwMDAxLHFvcD1hdXRoLGRpZ2VzdC11cmk9InhtcHAvd2EyLW16MzYtcXJtemg2LmJvc2NoLmRlIixyZXNwb25zZT00NzQ5NTcwYjJjNTZjZTBiYTg1YzI3YmY1OTY4OGE4YyxjaGFyc2V0PXV0Zi04</response>
1452373270 [VERBOSE]: Successfully sent 434 bytes.
1452373270 [VERBOSE]: RECV: <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD1lNGQ5YzAwOWNiMDwODQ3NzYwNzhjMzEY3NzNkOGVkMw==</success>
1452373270 [DEBUG]: Calling sasl_success_handler
1452373270 [INFO]: Auth success!
1452373270 [VERBOSE]: Socket is ready; send it.
1452373270 [VERBOSE]: SENT: <stream:stream to="wa2-mz36-qrmzh6.bosch.de" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0">
1452373270 [VERBOSE]: Successfully sent 129 bytes.
1452373270 [VERBOSE]: Socket is ready; send it.
1452373270 [VERBOSE]: SENT: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>

Vanaf hier snap ik het niet meer!

1452373270 [VERBOSE]: Successfully sent 52 bytes.
1452373270 [VERBOSE]: RECV: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="wa2-mz36-qrmzh6.bosch.de" id="c5d0597d" xml:lang="en" version="1.0"><stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
1452373270 [DEBUG]: Calling features_handler
1452373270 [VERBOSE]: Socket is ready; send it.
1452373270 [VERBOSE]: SENT: <iq type='set' id='sess_1'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>
1452373270 [VERBOSE]: Successfully sent 86 bytes.
1452373270 [VERBOSE]: RECV: </stream:stream>
1452373270 [VERBOSE]: Socket is ready; send it.
1452373270 [VERBOSE]: SENT: </stream:stream>
1452373270 [VERBOSE]: Successfully sent 16 bytes.
1452373270 [WARNING]: Reconnecting (30)...
1452373270 [INFO]: Connecting to tcp://wa2-mz36-qrmzh6.bosch.de:5222
1452373270 [VERBOSE]: Socket is ready; send it.

[ Voor 64% gewijzigd door KabouterSuper op 09-01-2016 22:05 ]

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • technorabilia
  • Registratie: November 2006
  • Laatst online: 21:59
Goed om nog een php versie voorbij te zien komen. Zou natuurlijk mooi zijn om de code ook te zien. ;)

Ik heb er niet veel verstand van maar de server lijkt nog "stream features" terug te sturen?
http://xmpp.org/extensions/xep-0198.html#feature
Je krijgt de success niet terug van de server.

[ Voor 8% gewijzigd door technorabilia op 09-01-2016 22:36 ]

👉🏻 Blog 👈🏻

Pagina: 1 2 3 4 5 Laatste

Let op:
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)!