robertklep / nefit-easy-http-server

HTTP server to access Nefit/Bosch XMPP backend over HTTP
MIT License
38 stars 15 forks source link

Error: Nefit Easy: Error getting http data! #55

Open Tinout opened 2 years ago

Tinout commented 2 years ago

Beste Robertklep, Ik gebruik al een aantal jaren jou script om de Nefit via domoticz te bedienen. Dat werkte super, alleen heb ik mijn node.js een update gegeven omdat ik anders een aantal andere apps niet meer kon bedienen.. Alleen nu gooit die Nefit easy na een aantal uur er uit en werkt het niet meer. Het werkt pas weer wanneer ik pm2 start uitvoer.

Zou u met me mee kunnen denken.

Alvast super bedankt

robertklep commented 2 years ago

Krijg je foutmeldingen? Zonder meer info is het erg lastig om te bepalen waarom het op den duur niet meer werkt.

Tinout commented 2 years ago

Bedankt voor je antwoord.. Ik ben een beetje een amateur, dus ik krijg deze foutmelding in domoticz Error: Nefit Easy: Error getting http data!

Kan ik op een andere manier nog foutmeldingen uit het systeem halen ?

robertklep commented 2 years ago

Dat zou je op het Domoticz forum moeten vragen, ik heb daar helaas geen ervaring mee (ook niet met de manier waarop ze aanraden om de server te draaien). Als er iets mis gaat zou de server een foutmelding moeten geven.

Tinout commented 2 years ago

Ik ben even aan het zoeken gegaan.

als ik het volgend command invul krijg ik dit antwoord. easy status Error: missing password

pm2 show nefiteasyhttpserver │ status │ stopped │ │ name │ nefiteasyhttpserver │ │ namespace │ default


/home/pi/.pm2/logs/nefiteasyhttpserver-out.log last 15 lines: /home/pi/.pm2/logs/nefiteasyhttpserver-error.log last 15 lines: 0|nefiteas | at Client._handleAuthState (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:295:10) 0|nefiteas | at Client._handleStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:233:12) 0|nefiteas | at Client.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:221:8) 0|nefiteas | at Connection.emit (events.js:198:13) 0|nefiteas | at Connection.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:377:10) 0|nefiteas | at StreamParser. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:231:10) 0|nefiteas | at StreamParser.emit (events.js:198:13) 0|nefiteas | at SaxLtx. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:69:14) 0|nefiteas | at SaxLtx.emit (events.js:198:13) 0|nefiteas | at SaxLtx._handleTagOpening (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:40:12) 0|nefiteas | at SaxLtx.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:159:18) 0|nefiteas | at StreamParser.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:134:17) 0|nefiteas | at Connection.onData (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:310:17) 0|nefiteas | at TLSSocket.emit (events.js:203:15) 0|nefiteas | at addChunk (_stream_readable.js:288:12)

dit is wat ik eruit kan halen

robertklep commented 2 years ago

Kun je meer dan de laatste 15 regels uit de log krijgen? De foutmelding staat er helaas niet bij.

De volledige log staat in /home/pi/.pm2/logs/nefiteasyhttpserver-error.log, maar ik weet niet of daar geen persoonlijke informatie in staat en of het dus slim is dat bestand hier volledig te plaatsen.

Tinout commented 2 years ago

dit is wat ik er uit kan halen

  | vents.js:189    throw err; // Unhandled 'error' event    ^Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('XMPP authentication failure')    at Client.emit (events.js:187:17)    at Client._handleAuthState (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:295:10)    at Client._handleStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:233:12)    at Client.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:221:8)    at Connection.emit (events.js:198:13)    at Connection.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:377:10)    at StreamParser. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:231:10)    at StreamParser.emit (events.js:198:13)    at SaxLtx. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:69:14)    at SaxLtx.emit (events.js:198:13)    at SaxLtx._handleTagOpening (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:40:12)    at SaxLtx.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:159:18)    at StreamParser.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:134:17)    at Connection.onData (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:310:17)    at TLSSocket.emit (events.js:203:15)    at addChunk (_stream_readable.js:288:12)events.js:189    throw err; // Unhandled 'error' event    ^Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('XMPP authentication failure')    at Client.emit (events.js:187:17)    at Client._handleAuthState (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:295:10)    at Client._handleStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:233:12)    at Client.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:221:8)    at Connection.emit (events.js:198:13)    at Connection.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:377:10)    at StreamParser. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:231:10)    at StreamParser.emit (events.js:198:13)    at SaxLtx. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:69:14)    at SaxLtx.emit (events.js:198:13)    at SaxLtx._handleTagOpening (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:40:12)    at SaxLtx.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:159:18)    at StreamParser.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:134:17)    at Connection.onData (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:310:17)    at TLSSocket.emit (events.js:203:15)    at addChunk (_stream_readable.js:288:12)events.js:189    throw err; // Unhandled 'error' event    ^Error [ERR_UNHANDLED_ERROR]: Unhandled error. ('XMPP authentication failure')    at Client.emit (events.js:187:17)    at Client._handleAuthState (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:295:10)    at Client._handleStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:233:12)    at Client.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:221:8)    at Connection.emit (events.js:198:13)    at Connection.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:377:10)    at StreamParser. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:231:10)    at StreamParser.emit (events.js:198:13)    at SaxLtx. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:69:14)    at SaxLtx.emit (events.js:198:13)    at SaxLtx._handleTagOpening (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:40:12)    at SaxLtx.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:159:18)    at StreamParser.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:134:17)    at Connection.onData (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:310:17)    at TLSSocket.emit (events.js:203:15)    at addChunk (_stream_readable.js:288:12)BeantwoordenDoorsturen |   |

robertklep commented 2 years ago

Er staat dat de server niet kon inloggen op de cloud server van Bosch/Nefit. Als het voor die tijd gewoon werkte is dat niet logisch, tenzij er misschien onderhoudswerkzaamheden worden uitgevoerd op die cloud server waarbij ze tijdelijk het inloggen hebben uitgezet.

Het lijkt me in ieder geval niet een probleem met Node.js of met de server app.

Tinout commented 2 years ago

het gekke is dat de app van nefit wel gewoon werkt ...

robertklep commented 2 years ago

Het kan zijn dat als de cloud server tijdelijk niet werkt, de app gewoon blijft proberen. Mijn code stopt zodra ie niet kan inloggen.

Met PM2 zou het mogelijk moeten zijn om dan de HTTP server opnieuw op te laten starten.

Tinout commented 2 years ago

ik ga het vanavond even verder uitproberen en dan laat ik het weten

Tinout commented 2 years ago

Hallo, Ik ben even verder gegaan als ik node.js terug zet doet die wel weer.

Ik heb de configuratie van deze site gebruikt. https://eye-vision.homeip.net/domoticz-configureren/

Als ik hem weer opnieuw opstart via pm2 start /etc/init.d/nefiteasyhttpserver.sh doet die weer een aantal uur

┌─────┬────────────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ nefiteasyhttpserver │ default │ N/A │ fork │ 6594 │ 0s │ 0 │ online │ 0% │ 2.5mb │ pi │ disabled │

robertklep commented 2 years ago

Welke versie van Node.js gebruik je nu dan? En welke had je geïnstalleerd toen de problemen ontstonden?

Maar nogmaals, ik denk niet dat het aan Node.js of de server ligt, maar dat het tijdelijk was. Het is niet logisch dat de server een paar uur draait en dan "ineens" met een XMPP authentication error terugkomt.

Tinout commented 2 years ago

Ik had node 10.... en ik heb nu node [v16.15.0]

Het is inderdaad gek.. zo juist had ik hem draaien en ruim 2 uur geen meldingen dan in eens krijg ik de melding 2022-05-28 19:07:34.515 Error: HTTP: 2022-05-28 19:19:29.839 Error: Nefit Easy: Error getting http data! 2022-05-28 19:21:01.855 Error: Nefit Easy: Error getting http data! 2022-05-28 19:22:33.404 Error: Nefit Easy: Error getting http data! 2022-05-28 19:24:04.887 Error: Nefit Easy: Error getting http data! 2022-05-28 19:25:37.426 Error: Nefit Easy: Error getting http data! 2022-05-28 19:27:09.045 Error: Nefit Easy: Error getting http data! 2022-05-28 19:28:40.595 Error: Nefit Easy: Error getting http data! 2022-05-28 19:30:12.275 Error: Nefit Easy: Error getting http data! 2022-05-28 19:30:12.278 Error: Nefit Easy: Error getting http data! 2022-05-28 19:31:43.843 Error: Nefit Easy: Error getting http data! 2022-05-28 19:51:15.722 Error: Nefit Easy: Error getting http data! 2022-05-28 19:52:46.800 Error: Nefit Easy: Error getting http data! 2022-05-28 19:54:17.603 Error: Nefit Easy: Error getting http data! 2022-05-28 19:55:48.410 Error: Nefit Easy: Error getting http data! 2022-05-28 19:55:48.414 Error: Nefit Easy: Error getting http data

0|nefiteas | at Client._handleAuthState (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:295:10) 0|nefiteas | at Client._handleStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:233:12) 0|nefiteas | at Client.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-client/lib/Client.js:221:8) 0|nefiteas | at Connection.emit (events.js:198:13) 0|nefiteas | at Connection.onStanza (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:377:10) 0|nefiteas | at StreamParser. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:231:10) 0|nefiteas | at StreamParser.emit (events.js:198:13) 0|nefiteas | at SaxLtx. (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:69:14) 0|nefiteas | at SaxLtx.emit (events.js:198:13) 0|nefiteas | at SaxLtx._handleTagOpening (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:40:12) 0|nefiteas | at SaxLtx.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/ltx/lib/parsers/ltx.js:159:18) 0|nefiteas | at StreamParser.write (/usr/lib/node_modules/nefit-easy-http-server/node_modules/@xmpp/streamparser/index.js:134:17) 0|nefiteas | at Connection.onData (/usr/lib/node_modules/nefit-easy-http-server/node_modules/node-xmpp-core/lib/Connection.js:310:17) 0|nefiteas | at TLSSocket.emit (events.js:203:15) 0|nefiteas | at addChunk (_stream_readable.js:288:12)

Kan het zijn dat er iets anders dan in eens op poort 3000 duizend zit of dat nefit het blokkeerd ?

robertklep commented 2 years ago

Kun je bij Domoticz ergens instellen hoe vaak ie de informatie moet opvragen aan de Nefit Easy server? Soms zit er praktisch geen tijd tussen de foutmeldingen, maar op andere momenten wel 20 minuten.

Tinout commented 2 years ago

dat durf ik niet te zeggen dat moet ik even opzoeken.... Na hoeveel keer gooit die de server op stop

Tinout commented 2 years ago

Van domoticz kan ik het nog niet vinden...

Ik probeer wat meer informatie uit de raspberry te krijgen pi@raspberrypi:~ $ sudo netstat -anp | grep LISTEN tcp 0 0 127.0.0.1:34215 0.0.0.0: LISTEN 1423/homebridge
tcp 0 0 127.0.0.1:36329 0.0.0.0:
LISTEN 1423/homebridge
tcp 0 0 127.0.0.1:43117 0.0.0.0: LISTEN 1423/homebridge
tcp 0 0 0.0.0.0:5901 0.0.0.0:
LISTEN 867/Xtightvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0: LISTEN 867/Xtightvnc
tcp 0 0 127.0.0.1:38485 0.0.0.0:
LISTEN 1423/homebridge
tcp 0 0 127.0.0.1:38069 0.0.0.0: LISTEN 1423/homebridge
tcp 0 0 0.0.0.0:22 0.0.0.0:
LISTEN 487/sshd
tcp 0 0 127.0.0.1:3000 0.0.0.0: LISTEN 23302/node
tcp 0 0 127.0.0.1:37977 0.0.0.0:
LISTEN 1423/homebridge
tcp 0 0 0.0.0.0:1883 0.0.0.0: LISTEN 456/mosquitto
tcp 0 0 0.0.0.0:2812 0.0.0.0:
LISTEN 477/monit
tcp 0 0 127.0.0.1:32961 0.0.0.0: LISTEN 1423/homebridge
tcp 0 0 127.0.0.1:44515 0.0.0.0:
LISTEN 1423/homebridge
tcp 0 0 127.0.0.1:36261 0.0.0.0:* LISTEN 1423/homebridge

Tinout commented 2 years ago

kan het zijn dat ik niet de laatste update van u heb geinstalleerd ?

robertklep commented 2 years ago

De laatste update is van anderhalf jaar geleden, dus ik denk niet dat dat het probleem is.

Maar dit is ook de eerste keer dat iemand met deze problemen komt, waardoor ik denk dat het iets lokaals is dat het veroorzaakt. Anders had ik wel meerdere bug reports verwacht.

Tinout commented 2 years ago

Ik vind het zo gek dat het steeds ontstaat na de node update.. Ik probeer van alles maar kom er nog niet uit

robertklep commented 2 years ago

Met nvm kun je relatief makkelijk verschillende Node.js versies naast elkaar installeren. Zo kun je de systeemversie op Node.js v16 houden en speciaal voor de Nefit Easy server Node.js v10 blijven gebruiken (en op die manier ook uittesten of het nog steeds werkt zoals het voorheen deed).

Tinout commented 2 years ago

bedankt... dat ga ik ook nog eens uitproberen

Nog een paar vraagjes sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi env: ‘/usr/lib/node_modules/pm2/bin/pm2’: Bestand of map bestaat niet

kan het hier mee te maken hebben

Tinout commented 2 years ago

Heeft u nog een goeie tip om de nefiteasy server te verwijderen zodat ik hem opnieuw kan installeren

ik wil dit vewijderen maar weet niet goed welke commands ik hier voor moet gebruiken ?

i@raspberrypi:~ $ pm2 list ┌─────┬────────────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ nefiteasyhttpserver │ default │ N/A │ fork │ 0 │ 0 │ 15 │ errored │ 0% │ 0b │ pi │ disabled │ └─────┴────────────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘ pi@raspberrypi:~ $ pm2 show nefiteasyhttpserver Describing process with id 0 - name nefiteasyhttpserver ┌───────────────────┬──────────────────────────────────────────────────┐ │ status │ errored │ │ name │ nefiteasyhttpserver │ │ namespace │ default │ │ version │ N/A │ │ restarts │ 15 │ │ uptime │ 0 │ │ script path │ /etc/init.d/nefiteasyhttpserver.sh │ │ script args │ N/A │ │ error log path │ /home/pi/.pm2/logs/nefiteasyhttpserver-error.log │ │ out log path │ /home/pi/.pm2/logs/nefiteasyhttpserver-out.log │ │ pid path │ /home/pi/.pm2/pids/nefiteasyhttpserver-0.pid │ │ interpreter │ bash │ │ interpreter args │ N/A │ │ script id │ 0 │ │ exec cwd │ /home/pi │ │ exec mode │ fork_mode │ │ node.js version │ N/A │ │ node env │ N/A │ │ watch & reload │ ✘ │ │ unstable restarts │ 0 │ │ created at │ N/A

robertklep commented 2 years ago

Als je 'm opnieuw installeert wordt een eventuele oude versie overschreven:

sudo npm i -g nefit-easy-http-server
Tinout commented 2 years ago

Hallo Robert hij doet het weer.. ik heb alleen 1 ding en dat is als ik de raspberry opnieuw opstart dat ik hem handmatig weer moet starten

Start script pm2 start /home/pi/nefiteasyhttpserver.sh

pm2 save

dit is wat ik nu heb geprobeert

robertklep commented 2 years ago

Ik gebruik zelf geen pm2 dus kan je daar helaas niet mee helpen.

Tinout commented 2 years ago

Hallo Robert, Ik denk dat ik hem weer draaiende heb.. Super bedankt dat je dit script hebt gemaakt en voor jehulp

Tinout commented 2 years ago

hallo Rob, Helaas stopt het script na twee dagen weer, is het mogelijk dat het script door blijft lopen en niet stopt ?

alvast bedankt

robertklep commented 2 years ago

Er zit niks in mijn code dat er voor zorgt dat het na twee dagen stopt met werken. Misschien dat je met een cronjob het script elke dag/nacht opnieuw kunt laten opstarten.

Tinout commented 2 years ago

Kan het zijn als die heel vaak de http error krijgt dat dan het script stopt ? Ik probeer uit te zoeken waar het vandaan komt

Tinout commented 2 years ago

ik heb het volgende nog uitgeprobeerd

easy-server --serial=YOURSERIAL --access-key=YOURACCESSKEY --password=YOURPASSWORD --host=0.0.0.0

XMPP authentication failure

en ik krijg deze melding ook vaak DEBUG=* easy status Error: missing password

robertklep commented 2 years ago

Je moet YOURSERIAL, YOURACCESSKEY en YOURPASSWORD uiteraard vervangen door de juiste waarden. En easy status aanroepen zonder serial/access key/password kan uiteraard niet werken, die gegevens zijn nodig om in te loggen.