Angelehnt an das Modul vom coolen Tux (https://forum.fhem.de/index.php/topic,87835.0.html) habe ich ein ähnliches Modul eingecheckt, welches für die Aktualisierung von Node.js Paketen, welche per NPM installiert wurden, hergenommen werden kann.
Die Voraussetzungen sind ähnlich. Natürlich muss Node.js bereits installiert sein und außerdem müssen die Sudo Rechte für /usr/bin/npm entsprechend an den FHEM Benutzer vergeben worden sein (siehe auch Commandref).
Version 0.9.0 wird ab morgen per Update ausgeliefert.
Hi Loredo,
habe mir das Teil gerade aus dem SVN geholt und ausprobiert... macht aber irgendwie nix.
get showUpgradeList zeigt mir, dass upgrades vorhanden sind:
Packagename Current Version New Version
homebridge 0.4.45 0.4.46
npm 6.4.1 6.7.0
set update macht etwas, aber ohne Ergebnis... Readings nach update:
READINGS:
2019-01-27 00:21:32 nodejsVersion 10.15.0
2019-01-27 00:21:46 outdated fetched done
2019-01-27 00:25:14 state npm updates available
2019-01-27 00:25:14 update successful
2019-01-27 00:21:46 updatesAvailable 2
helper:
lastSync 2019-01-27
und hier noch das zugehörige verbose 5 log...
2019.01.27 00:24:54 5: npmjs (npmjs) - Notify: $VAR1 = [
'ATTR npmjs verbose 5'
];
2019.01.27 00:25:00 5: npmjs (npmjs) - Notify: $VAR1 = [
'state: command \'npm update\' in progress'
];
2019.01.27 00:25:01 4: npmjs (npmjs) - execute command asynchronously (PID= 3501)
2019.01.27 00:25:01 4: npmjs (npmjs) - control passed back to main loop.
2019.01.27 00:25:02 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:03 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:04 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:05 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:06 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:07 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:08 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:09 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:10 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:11 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:12 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:13 5: npmjs (npmjs) - still waiting (read: no data).
2019.01.27 00:25:14 4: npmjs (npmjs) - got result from asynchronous parsing.
2019.01.27 00:25:14 4: npmjs (npmjs) - asynchronous finished.
2019.01.27 00:25:14 4: npmjs (npmjs) - clean Subprocess
2019.01.27 00:25:14 4: npmjs (npmjs) - JSON: {"state":"done"}
2019.01.27 00:25:14 4: npmjs (npmjs) - Write Readings
2019.01.27 00:25:14 5: npmjs (npmjs) - $VAR1 = {
'state' => 'done'
};
2019.01.27 00:25:14 5: npmjs (npmjs) - Packages: 0
2019.01.27 00:25:14 5: npmjs (npmjs) - Notify: $VAR1 = [
'update: successful',
'state: npm updates available'
];
Sieht so aus, als wenn die Updates installiert wurden.
Hast du anschließend ein set outdated gemacht?
Hi Loredo,
scheint bei mir zu hängen... npm ist aktualisiert (und wird jetzt auch von deinem Modul nicht mehr angezeigt), die homebridge sagt zwar (auch wenn ich es von Hand mache) dass sie aktualisiert wurde, npm outdated meint aber immernoch sie wäre nicht aktuell...
ich hatte aber mehrfach beim rumclicken im Modul ein Popup "usage: outdated", da "denkt" das Modul offensichtlich, dass ich einen Parameter mitgegeben habe, mache ich aber nicht ;-)
Außerdem ist mir noch aufgefallen, dass der state nicht aktualisiert wird, wenn man ein gesetztes disabled-Attribut löscht.
Danke fürs testen!
Habe einen Fix eingecheckt.
Guten Morgen,
vorhin nach einem Update folgendes:
Messages collected while initializing FHEM:
configfile: too few parameters: define <name> npmjs [<HOST>]
Please define nodejs 5c4d6776-f33f-0308-d911-e1261b62a9ef5b88 first
./log/fhem.save: Please define nodejs first
Please define nodejs first
Please define nodejs first
Please define nodejs first
Please define nodejs first
Please define nodejs first
Please define nodejs first
Please define nodejs first
Vorher lief das Modul einwandfrei. Auch bei einem normalen
define fhemServer npmjs localhost
kommt
too few parameters: define <name> npmjs [<HOST>]
VG Sebastian
Danke! Ich hatte den Host Parameter als optional deklariert, aber einen Restcode nicht entfernt.
Wenn man also nicht auf einen entfernten Rechner will/muss, kann man "localhost" auch weglassen. Ab morgen geht es auch wieder mit "localhost".
Ah OK. Danke :)
VG Sebastian
@Loredo
Hab den Thread nicht mehr gefunden gehabt.
Weshalb ich hier was geschrieben habe:
https://forum.fhem.de/index.php/topic,96958.msg901262.html#msg901262
Kannst du das Vll einbauen, das die Version auch aktualisiert wird?
Danke und Gruß Robert
Gesendet von iPhone mit Tapatalk Pro
Done, gibts mit dem morgigen Update.
Hallo!
Alexa-fhem wird upgedatet, jedoch 9 weitere Pakete nicht:
pi@charly:~ $ sudo npm update
(node:4317) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead
obige Meldung hat zwar nichts mit npmjs.pm zu tun, bin aber nicht in der Lage - trotz Suche - dafür eine Lösung zu finden.
Vielleicht jemand eine Lösung/Hilfe?
Danke und LG
PS.: node --version v8.11.1
Wende dich an den Autor des node.js Moduls, was die als veraltet markierte Funktion verwendet. Ggf hilft auch auf eine neuere Node Version zu aktualisieren.
Mehr kann ich dazu nicht sagen, ansonsten geht es hier um die npm Implementierung in FHEM.
Mit dem heutigen Update kann das Modul auch install und uninstall.
Die FHEMWEB Ansicht ist vorbelegt mit den für FHEM relevanten Modulen, welche mittels dem virtuellen NPM Paket "fhem-all" auch gemeinsam installiert, deinstalliert und aktualisiert werden können.
Über die FHEM Kommandozeile kann man aber auch jedes andere Paket installieren.
Die für install/uninstall/update notwendige sudo Berechtigung hat sich geändert. Weil die Kommandos für ein besseres Error Handling in einer Subshell ausgeführt werden, braucht es aktuell die Berechtigung ALL.
Außerdem wird bei einer komplett fehlenden Node.js Installation angeboten Node auf dem Rechner zu installieren (funktioniert nur für Linux mit APT Paketmanager, so wie auf nodejs.org angeboten).
Zitat von: Loredo am 11 Februar 2019, 20:45:27
Wende dich an den Autor des node.js Moduls, was die als veraltet markierte Funktion verwendet. Ggf hilft auch auf eine neuere Node Version zu aktualisieren.
Danke! Funktioniert!
LG
Zitat von: Loredo am 12 Februar 2019, 09:22:37
Mit dem heutigen Update kann das Modul auch install und uninstall.
Hallo!
Bei mir gibt es nur mehr "set xxx install vxxx" und keine weiteren "set Befehle" mehr.
LG
Zitat von: raimundl am 12 Februar 2019, 10:07:18
Hallo!
Bei mir gibt es nur mehr "set xxx install vxxx" und keine weiteren "set Befehle" mehr.
LG
Es haben sich einige interne Readings geändert. Du kannst entweder das Device nochmals löschen und neu anlegen oder gibst in der FHEM Befehlszeile ein "set npmjs outdated" ein.
In einer morgigen Version kann man bei der nodejs-Installation auch einen statusRequest absetzen und so den Status manuell erneuern.
Mal ne frage am Rande.
Kann mir mal einer sagen was bei Node -v raus bekommt, wenn er schon 11.x installiert hat?
Gesendet von iPhone mit Tapatalk Pro
Ich verstehe diese Frage nicht.
Wenn du dich darauf beziehst, was raimundl angemerkt hat, dann siehe meine Antwort im vorherigen Post.
Zitat von: no_Legend am 12 Februar 2019, 14:47:19
Mal ne frage am Rande.
Kann mir mal einer sagen was bei Node -v raus bekommt, wenn er schon 11.x installiert hat?
Gesendet von iPhone mit Tapatalk Pro
pi@charly:~ $ node -v
v11.8.0
Zitat von: Loredo am 12 Februar 2019, 15:04:23
Ich verstehe diese Frage nicht.
Wenn du dich darauf beziehst, was raimundl angemerkt hat, dann siehe meine Antwort im vorherigen Post.
Naja ich bekomme obwohl ich die 11 installiert habe immer die Version 10 ausgegeben.
Das kann ich mir nicht ganz erklären.
Gesendet von iPhone mit Tapatalk Pro
Ich vermute mal, dass du das Modul noch gar nicht auf dem aktuellsten Stand hast, richtig?
In der initialen Version wurde die Versionsnummer nicht aktualisiert. Das kannst du aber auch beheben, indem du das FHEM Device löscht und neu anlegst.
Noch ein kurzer Hinweis zur Version von heute:Internals:
CFGFN
DEF localhost
FUUID 5c62b06a-f33f-dd09-db61-6a38800b4c5ef25d
HOST localhost
NAME npm
NOTIFYDEV global,npm
NR 331
NTFY_ORDER 50-npm
STATE npm is up to date
TYPE npmjs
VERSION 0.10.0
READINGS:
2019-02-12 12:39:23 nodejsVersion 11.8.0
2019-02-12 12:41:01 outdated check failed
2019-02-12 12:41:01 state npm is up to date
2019-02-12 12:39:40 updatesAvailable 0
helper:
lastSync 2019-02-12
Attributes:
alias Node.js Update Status
devStateIcon npm.updates.available:security@red:outdated npm.is.up.to.date:security@green:outdated .*in.progress:system_fhem_reboot@orange warning.*:message_attention@orange error.*:message_attention@red
group System
icon nodejs
room System
outdated check failed
LG
Alles schon adressiert, danke.
Zitat von: Loredo am 12 Februar 2019, 15:15:59
Ich vermute mal, dass du das Modul noch gar nicht auf dem aktuellsten Stand hast, richtig?
In der initialen Version wurde die Versionsnummer nicht aktualisiert. Das kannst du aber auch beheben, indem du das FHEM Device löscht und neu anlegst.
Sorry ich hab mich nicht klar ausgedrückt.
Die Version wird auf der Console immer so ausgegeben, dass hat erst mal nix mit dem FHEM Modul zu tun.
Hallo,
seit dem heutigen Update (12.02.2019) kann ich nur noch ein
set install 6/8/10/11
ausführen. Sonst nichts. Ich möchte aber gar nicht node updaten oder gar downgraden... :o
Das ist doch bestimmt nicht im Sinne des Erfinders oder?!
Hiwer ein List des devices:
Historie löschen
Internals:
FUUID 5c5bf378-f33f-0308-bceb-82ca18e54990aefb
HOST localhost
NAME nodejs
NOTIFYDEV global,nodejs
NR 383
NTFY_ORDER 50-nodejs
STATE npm is up to date
TYPE npmjs
VERSION 0.10.0
READINGS:
2019-02-07 09:59:37 nodejsVersion 8.15.0
2019-02-12 00:09:57 outdated fetched done
2019-02-12 00:09:57 state npm is up to date
2019-02-11 08:11:39 update successful
2019-02-11 08:12:00 updatesAvailable 0
Attributes:
alias Node.js Update Status
devStateIcon npm.updates.available:security@red npm.is.up.to.date:security@green .*in.progress:system_fhem_reboot@orange errors:message_attention@red
group System
icon it_server
room 90_System->90_System
VG Sebastian
Liest hier eigentlich jemand, was ich schreibe? [emoji849]
Entweder auf das Update morgen warten oder das Modul jetzt aus dem SVN laden. Und Device im Zweifel frisch anlegen, es geht aber auch ein ,,install statusRequest", um die Node.js Version erneut zu prüfen.
Wie komme ich auf die nodejsVersion 11.8.0
set fhemServer install 11 hat nicht funktioniert
nodejs -v -> 11.9.0
node -v -> 10.13.0
npm -v -> 6.7.0
Internals:
FUUID 5c6327cd-f33f-d049-47eb-3813d9e553940daa
HOST localhost
NAME fhemServer
NOTIFYDEV global,fhemServer
NR 603
NTFY_ORDER 50-fhemServer
STATE npm is up to date
TYPE npmjs
VERSION 0.10.0
READINGS:
2019-02-12 21:55:15 installed successful
2019-02-12 21:08:47 nodejsVersion 10.13.0
2019-02-12 21:57:35 outdated check failed
2019-02-12 21:57:35 state npm is up to date
2019-02-12 21:09:24 updatesAvailable 0
helper:
lastSync 2019-02-12
Attributes:
DbLogExclude .*
alias Node.js Update Status
devStateIcon npm.updates.available:security@red:outdated npm.is.up.to.date:security@green:outdated .*in.progress:system_fhem_reboot@orange warning.*:message_attention@orange error.*:message_attention@red
group System
icon nodejs
room System
Gar nicht, ein Update der Node.js Version ist nicht vorgesehen. NPM ist nur ein Paketmanager.
Neue Version von heute: bis dato alles ok.
Danke!
Bitte was bewirkt "set xxx install fhem-all"? ist damit auch das update für alexa-fhem dabei?
LG
Prima, danke für die Rückmeldung!
"fhem-all" beinhaltet immer nur das fehlende Delta. Sprich, es werden bei "install" nur die noch nicht installierten FHEM Pakete installiert. Bei "uninstall" werden nur die noch nicht deinstallierten FHEM Pakete entfernt. Bei "update" werden nur die FHEM Pakete aktualisiert, die auch ein Update haben. Wenn man ein Paket nicht über den Update Befehl aktualisieren möchte, sonder drüber installieren, dann kann man nicht "install fhem-all" verwenden, sondern muss explizit den Namen des NPM Paketes verwenden (also zB "install alexa-fhem").
Solange man "fhem-all" verwendet, wirkt sich das Kommando auf keine anderen Module aus, die nicht zu FHEM gehören. Ein "homebridge" bleibt also beispielsweise auf dem selben Stand, obwohl vielleicht eine neue Version verfügbar wäre. Möchte man wirklich alles aktualisieren, kann man das mit "update all" machen.
Danke für die ausführliche Erklärung.
Da gestern alle meine Pakete "uptodate" waren, wurde mir nach der Installation einzig "set xxx install xxxx" angezeigt - deswegen meine Frage.
Heute war ein npm update verfügbar und hier wurden nun alle set-Möglichkeiten angezeigt.
Update und entsprechende Infos funktionieren tadellos!
Danke und LG
Hallo!
Habe gestern und heute versucht das Update auf einem Dockers Container (natürlich das Image von Loredo) zu machen!
Erst klappte es gar nicht!
Stieg immer aus mit
{"error":{"code":"E403","detail":"sudo: a password is required","summary":"Forbidden - passwordless sudo permissions required (fhem ALL=NOPASSWD: ALL)"}}
Dieses habe Ich gelöst indem Ich im Container die /etc/sudoers Datei mit fhem ALL=NOPASSWD: ALL
erweitert habe. Könnte man das in dem Dockers Image nicht direkt einfügen?
Anschließend hatte Ich noch ein Problem mit dem Modul tradfri-fhem
Fehler war
2019.02.14 13:06:18.846 5: npmjs (fhemServerNpm) - $VAR1 = {
'error' => {
'summary' => 'Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 952.
',
'detail' => '',
'code' => 'E500'
}
};
Konnte dieses nur manuell über Terminal beheben indem Ich das Modul neu über npm installiert habe.
Jetzt nehme Ich mir mal den 2.ten Container vor.
Nachtrag....
Beim 2.ten Container das selbe wie beim Ersten!
Gruß
Dominik
Das Docker Image ist noch nicht fertig angepasst, die sudo Anpassung muss man derzeit noch selbst machen.
Das Problem mit tradfri-fhem hat André schon analysiert (https://forum.fhem.de/index.php/topic,96125.msg904869.html#msg904869), es liegt wohl außerhalb unseres Einflussbereichs und hängt vor allem mit der Deinstallation des Moduls bzw. einer dessen Abhängigkeiten zusammen. tradfri-fhem neu installieren geht aber problemlos auch über die FHEM Oberfläche.
Wer Docker verwendet: Neues Produktiv-Image v1.8.3 baut gerade:
https://forum.fhem.de/index.php/topic,89745.msg906522.html#msg906522
ich hätte da einen vorschlag :)
es wäre schön wenn man das get showInstalledList auch per telnet verwenden könnte.
kannst du $hash->{CL} püffen und davon abhängig html oder ganz altmodisch text mit tabs ausgeben?
At your service! 8)
Aber ein paar Fragen:
- Warum wird die Ausgabe unterschiedlich von FHEMWEB behandelt, wenn ich get über den Button aufrufe oder über die Web Eingabezeile? Über die Web Eingabezeile erscheint vor dem eigentlichen Text noch der erste HTML Tag als normaler Text. Bei Nutzung des get Buttons ist das nicht so.
- Irgendwer hatte doch mal die Anzahl der Tabs für Textausgaben dynamisch gemacht, damit die Spalten gleich groß sind. Wo finde ich dazu was?
das eingabefeld und die buttons sind (manchmal) unterschiedlich.
bei ersterem gibt es einen unterschied zwischen der einstiegssseite und einer anfrage aus einem raum bzw. der detail ansicht. den grund wusste ich mal :)
ansonsten hat der unterschied etwas damit zu tun ob die antwort auf das kommando per longpoll und somit auf js seite ausgewertet wird oder ob fhemweb eine neue seite erzeugt wie z.b. für list nötig ist.
wenn du aus einem kommando html zurück geben willst musst du es mit <html>...</html> klammern. sonst weiß fhemweb z.b. auch nicht ob der inhalt noch mal
escaped werden muss.
das was du meinst waren glaube ich die tabellen spalten in fhemweb für webcmd und co.
aber mir geht es ja um die ausgabe per telnet :)
tabs sind immer 8. aber das reicht nicht. ich verwende sprintf mit %-<n>s und einem halbwegs sinnvollen <n> als spaltenbreite für solche ausgaben.
Zitat von: Loredo am 21 Februar 2019, 13:00:28
At your service! 8)
Aber ein paar Fragen:
- Warum wird die Ausgabe unterschiedlich von FHEMWEB behandelt, wenn ich get über den Button aufrufe oder über die Web Eingabezeile? Über die Web Eingabezeile erscheint vor dem eigentlichen Text noch der erste HTML Tag als normaler Text. Bei Nutzung des get Buttons ist das nicht so.
- Irgendwer hatte doch mal die Anzahl der Tabs für Textausgaben dynamisch gemacht, damit die Spalten gleich groß sind. Wo finde ich dazu was?
das get per telnet funktioniert. danke
leider habe ich auf meinem mac gerade das problem das das modul von der fehlermeldung: Error code E500
Summary:
Parsing error - malformed JSON string, neither array, object, number, string or atom, at character offset 761 (before "\x{e2}\x{94}\x{8c}\x{e2}...") at ./FHEM/42_npmjs.pm line 990.
Detail:
{
"versions":
{"http_parser":"2.8.0","node":"10.15.0","v8":"6.8.275.32-node.45","uv":"1.23.2","zlib":"1.2.11","ares":"1.15.0","modules":"64","nghttp2":"1.34.0","napi":"3","openssl":"1.1.0j","icu":"62.1","unicode":"11.0","cldr":"33.1","tz":"2018e"}
, "listed": {
"dependencies": {
"alexa-fhem": {
"version": "0.5.19",
"from": "alexa-fhem@0.5.19",
"resolved": "https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.19.tgz"
},
"npm": {
"version": "6.8.0",
"from": "npm@6.8.0",
"resolved": "https://registry.npmjs.org/npm/-/npm-6.8.0.tgz"
},
"tradfri-fhem": {
"version": "0.1.1",
"from": "tradfri-fhem",
"resolved": "https://registry.npmjs.org/tradfri-fhem/-/tradfri-fhem-0.1.1.tgz"
}
}
}
, "outdated":
┌──────────────────────────────────────────────────────────┐
│ npm update check failed │
│ Try running with sudo or get access │
│ to the local update config store via │
│ sudo chown -R $USER:$(id -gn $USER) /Users/andre/.config │
└──────────────────────────────────────────────────────────┘
}
komplett aus dem konzept gebracht wird.
danach kennt das modul als set nur noch install:nodejs-v11,nodejs-v10,nodejs-v8,nodejs-v6,statusRequest
und ich vermute zumindest das statusrequesyt gehört da auch nicht hin.
auch ein restart hilft nicht. ich vermute das liegt an den gespeicherten readings.
edit: ja. readings löschen hilft. danach versucht es das modul zumindest wieder
edit2: der fehler war wie in der meldung zu sehen die berechtigungen in /Users/andre/.config. nach dem reparieren ist wieder alles ok.
d.h. du musst nur noch die fehlermeldung abfangen. da scheint npm kein gültiges json zu liefern :)
Zitat von: justme1968 am 21 Februar 2019, 22:09:22
danach kennt das modul als set nur noch install:nodejs-v11,nodejs-v10,nodejs-v8,nodejs-v6,statusRequest
und ich vermute zumindest das statusrequesyt gehört da auch nicht hin.
doch, statusRequest soll dort sein, auch wenn es im Hintergrund das selbe Kommando aufruft die die nodejs-* Attribute. Hintergrund ist, dass sonst nicht offensichtlich ist, dass man damit auch nur nochmals eine erneute Prüfung des Installations-Zustandes der Node.js Installation anstoßen kann, beispielsweise weil man es zwischenzeitlich selbst installiert hat. Dass man dazu ein "set install nodejs-*" machen muss, wäre nicht ganz so offensichtlich ;-)
Zitat von: justme1968 am 21 Februar 2019, 22:09:22
edit: ja. readings löschen hilft. danach versucht es das modul zumindest wieder
Ok, nicht offensichtlich genug für dich, hast dich wohl nicht getraut einen statusRequest zu machen.
Zitat von: justme1968 am 21 Februar 2019, 22:09:22d.h. du musst nur noch die fehlermeldung abfangen. da scheint npm kein gültiges json zu liefern :)
Danke, ich schau mal.
das man für einen statusRequest ein set <name> install statusRequest machen muss ist aber auch nicht offensichtlich ;)
ein set <name> statusRequest finde ich zumindest offensichtlicher.
ich denke da ist ein komma zu viel :)
Hmmmm eigentlich gehts ja um den Status Request zur Installation, aber meinetwegen ^^
Hab auch den Bug gefixt, es fehlte eigentlich nur ein --silent.
Hallo Loredo,
ich habe gerade versucht, über das Modul ein "get Outdated" zu machen.
Dabei bekomme ich folgendes:
2019.02.25 09:48:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/42_npmjs.pm line 1239.
2019.02.25 09:48:00 1: stacktrace:
2019.02.25 09:48:00 1: main::__ANON__ called by ./FHEM/42_npmjs.pm (1239)
2019.02.25 09:48:00 1: FHEM::npmjs::CreateErrorList called by ./FHEM/42_npmjs.pm (491)
2019.02.25 09:48:00 1: FHEM::npmjs::Get called by fhem.pl (3693)
2019.02.25 09:48:00 1: main::CallFn called by fhem.pl (1951)
2019.02.25 09:48:00 1: main::CommandGet called by fhem.pl (1233)
2019.02.25 09:48:00 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2664)
2019.02.25 09:48:00 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (896)
2019.02.25 09:48:00 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (567)
2019.02.25 09:48:00 1: main::FW_Read called by fhem.pl (3693)
2019.02.25 09:48:00 1: main::CallFn called by fhem.pl (742)
später habe ich versucht einfach ein "update all" zu machen, aber die Fehler wurden immer eigenartiger...
2019.02.25 10:15:21 5: npmjs (fhemServer) - Notify: $VAR1 = [
'ATTR fhemServer verbose 5'
];
echo n | echo "{
\"versions\": "; node -e "console.log(JSON.stringify(process.versions));"; L1=$(npm list -g --json --silent --depth=0 2>/dev/null); [ "$L1" != "" ] && [ "$L1" != "\n" ] && echo ", \"listed\": $L1"; L2=$(npm outdated -g --json 2>&1); [ "$L2" != "" ] && [ "$L2" != "\n" ] && echo ", \"outdated\": $L2"; echo "}"
2019.02.25 10:15:29 5: npmjs (fhemServer) - Notify: $VAR1 = [
'state: command \'npm outdated\' in progress'
];
2019.02.25 10:15:29 4: npmjs (fhemServer) - execute command asynchronously (PID= 6420)
2019.02.25 10:15:29 4: npmjs (fhemServer) - control passed back to main loop.
2019.02.25 10:15:30 5: npmjs (fhemServer) - still waiting (read: no data).
2019.02.25 10:15:31 5: npmjs (fhemServer) - still waiting (read: no data).
2019.02.25 10:15:32 5: npmjs (fhemServer) - still waiting (read: no data).
2019.02.25 10:15:33 5: npmjs (fhemServer) - still waiting (read: no data).
{
"versions":
{"node":"11.10.0","v8":"7.0.276.38-node.17","uv":"1.26.0","zlib":"1.2.11","brotli":"1.0.7","ares":"1.15.0","modules":"67","nghttp2":"1.34.0","napi":"4","llhttp":"1.1.1","http_parser":"2.8.0","openssl":"1.1.1a","cldr":"34.0","icu":"63.1","tz":"2018e","unicode":"11.0"}
, "listed": {
"dependencies": {
"alexa-fhem": {
"version": "0.5.22",
"from": "alexa-fhem@0.5.22",
"resolved": "https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz"
},
"homebridge": {
"version": "0.4.46",
"from": "homebridge@0.4.46",
"resolved": "https://registry.npmjs.org/homebridge/-/homebridge-0.4.46.tgz"
},
"homebridge-camera-ffmpeg": {
"version": "0.1.11",
"from": "homebridge-camera-ffmpeg@0.1.11",
"resolved": "https://registry.npmjs.org/homebridge-camera-ffmpeg/-/homebridge-camera-ffmpeg-0.1.11.tgz"
},
"homebridge-config-ui-x": {
"version": "3.9.6",
"from": "homebridge-config-ui-x@3.9.6",
"resolved": "https://registry.npmjs.org/homebridge-config-ui-x/-/homebridge-config-ui-x-3.9.6.tgz"
},
"homebridge-fhem": {
"version": "0.4.19",
"from": "homebridge-fhem@0.4.19",
"resolved": "https://registry.npmjs.org/homebridge-fhem/-/homebridge-fhem-0.4.19.tgz"
},
"node-gyp": {
"version": "3.8.0",
"from": "node-gyp",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz"
},
"npm": {
"version": "6.8.0",
"from": "npm@6.8.0",
"resolved": "https://registry.npmjs.org/npm/-/npm-6.8.0.tgz"
}
}
}
, "outdated": npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EPROTO: request to https://registry.npmjs.org/alexa-fhem failed, reason: write EPROTO 140041132111680:error:1012606B:elliptic curve routines:EC_POINT_set_affine_coordinates:point is not on curve:../deps/openssl/openssl/crypto/ec/ec_lib.c:723:
140041132111680:error:10098010:elliptic curve routines:o2i_ECPublicKey:EC lib:../deps/openssl/openssl/crypto/ec/ec_asn1.c:1095:
140041132111680:error:100D708E:elliptic curve routines:eckey_pub_decode:decode error:../deps/openssl/openssl/crypto/ec/ec_ameth.c:157:
140041132111680:error:0B09407D:x509 certificate routines:x509_pubkey_decode:public key decode error:../deps/openssl/openssl/crypto/x509/x_pubkey.c:124:
140041132111680:error:1416F0EF:SSL routines:tls_process_server_certificate:unable to find public key parameters:../deps/openssl/openssl/ssl/statem/statem_clnt.c:1948:
npm WARN registry Using stale data from https://registry.npmjs.org/ due to a request error during revalidation.
{
"homebridge-fhem": {
"current": "0.4.19",
"wanted": "0.4.19",
"latest": "0.5.1",
"location": "/usr/lib/node_modules/homebridge-fhem"
}
}
}
2019.02.25 10:15:34 4: npmjs (fhemServer) - got result from asynchronous parsing.
2019.02.25 10:15:34 4: npmjs (fhemServer) - asynchronous finished.
2019.02.25 10:15:34 4: npmjs (fhemServer) - clean Subprocess
2019.02.25 10:15:34 4: npmjs (fhemServer) - JSON: {"error":{"code":"E500","summary":"Parsing error - 'null' expected, at character offset 1564 (before \"npm WARN registry Un...\") at ./FHEM/42_npmjs.pm line 990.\n","detail":"{\n\"versions\": \n{\"node\":\"11.10.0\",\"v8\":\"7.0.276.38-node.17\",\"uv\":\"1.26.0\",\"zlib\":\"1.2.11\",\"brotli\":\"1.0.7\",\"ares\":\"1.15.0\",\"modules\":\"67\",\"nghttp2\":\"1.34.0\",\"napi\":\"4\",\"llhttp\":\"1.1.1\",\"http_parser\":\"2.8.0\",\"openssl\":\"1.1.1a\",\"cldr\":\"34.0\",\"icu\":\"63.1\",\"tz\":\"2018e\",\"unicode\":\"11.0\"}\n, \"listed\": {\n \"dependencies\": {\n \"alexa-fhem\": {\n \"version\": \"0.5.22\",\n \"from\": \"alexa-fhem@0.5.22\",\n \"resolved\": \"https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz\"\n },\n \"homebridge\": {\n \"version\": \"0.4.46\",\n \"from\": \"homebridge@0.4.46\",\n \"resolved\": \"https://registry.npmjs.org/homebridge/-/homebridge-0.4.46.tgz\"\n },\n \"homebridge-camera-ffmpeg\": {\n \"version\": \"0.1.11\",\n \"from\": \"homebridge-camera-ffmpeg@0.1.11\",\n \"resolved\": \"https://registry.npmjs.org/homebridge-camera-ffmpeg/-/homebridge-camera-ffmpeg-0.1.11.tgz\"\n },\n \"homebridge-config-ui-x\": {\n \"version\": \"3.9.6\",\n \"from\": \"homebridge-config-ui-x@3.9.6\",\n \"resolved\": \"https://registry.npmjs.org/homebridge-config-ui-x/-/homebridge-config-ui-x-3.9.6.tgz\"\n },\n \"homebridge-fhem\": {\n \"version\": \"0.4.19\",\n \"from\": \"homebridge-fhem@0.4.19\",\n \"resolved\": \"https://registry.npmjs.org/homebridge-fhem/-/homebridge-fhem-0.4.19.tgz\"\n },\n \"node-gyp\": {\n \"version\": \"3.8.0\",\n \"from\": \"node-gyp\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz\"\n },\n \"npm\": {\n \"version\": \"6.8.0\",\n \"from\": \"npm@6.8.0\",\n \"resolved\": \"https://registry.npmjs.org/npm/-/npm-6.8.0.tgz\"\n }\n }\n}\n, \"outdated\": npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EPROTO: request to https://registry.npmjs.org/alexa-fhem failed, reason: write EPROTO 140041132111680:error:1012606B:elliptic curve routines:EC_POINT_set_affine_coordinates:point is not on curve:../deps/openssl/openssl/crypto/ec/ec_lib.c:723:\n140041132111680:error:10098010:elliptic curve routines:o2i_ECPublicKey:EC lib:../deps/openssl/openssl/crypto/ec/ec_asn1.c:1095:\n140041132111680:error:100D708E:elliptic curve routines:eckey_pub_decode:decode error:../deps/openssl/openssl/crypto/ec/ec_ameth.c:157:\n140041132111680:error:0B09407D:x509 certificate routines:x509_pubkey_decode:public key decode error:../deps/openssl/openssl/crypto/x509/x_pubkey.c:124:\n140041132111680:error:1416F0EF:SSL routines:tls_process_server_certificate:unable to find public key parameters:../deps/openssl/openssl/ssl/statem/statem_clnt.c:1948:\n\nnpm WARN registry Using stale data from https://registry.npmjs.org/ due to a request error during revalidation.\n{\n \"homebridge-fhem\": {\n \"current\": \"0.4.19\",\n \"wanted\": \"0.4.19\",\n \"latest\": \"0.5.1\",\n \"location\": \"/usr/lib/node_modules/homebridge-fhem\"\n }\n}\n}\n"}}
2019.02.25 10:15:34 4: npmjs (fhemServer) - Write Readings
2019.02.25 10:15:34 5: npmjs (fhemServer) - $VAR1 = {
'error' => {
'detail' => '{
"versions":
{"node":"11.10.0","v8":"7.0.276.38-node.17","uv":"1.26.0","zlib":"1.2.11","brotli":"1.0.7","ares":"1.15.0","modules":"67","nghttp2":"1.34.0","napi":"4","llhttp":"1.1.1","http_parser":"2.8.0","openssl":"1.1.1a","cldr":"34.0","icu":"63.1","tz":"2018e","unicode":"11.0"}
, "listed": {
"dependencies": {
"alexa-fhem": {
"version": "0.5.22",
"from": "alexa-fhem@0.5.22",
"resolved": "https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz"
},
"homebridge": {
"version": "0.4.46",
"from": "homebridge@0.4.46",
"resolved": "https://registry.npmjs.org/homebridge/-/homebridge-0.4.46.tgz"
},
"homebridge-camera-ffmpeg": {
"version": "0.1.11",
"from": "homebridge-camera-ffmpeg@0.1.11",
"resolved": "https://registry.npmjs.org/homebridge-camera-ffmpeg/-/homebridge-camera-ffmpeg-0.1.11.tgz"
},
"homebridge-config-ui-x": {
"version": "3.9.6",
"from": "homebridge-config-ui-x@3.9.6",
"resolved": "https://registry.npmjs.org/homebridge-config-ui-x/-/homebridge-config-ui-x-3.9.6.tgz"
},
"homebridge-fhem": {
"version": "0.4.19",
"from": "homebridge-fhem@0.4.19",
"resolved": "https://registry.npmjs.org/homebridge-fhem/-/homebridge-fhem-0.4.19.tgz"
},
"node-gyp": {
"version": "3.8.0",
"from": "node-gyp",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz"
},
"npm": {
"version": "6.8.0",
"from": "npm@6.8.0",
"resolved": "https://registry.npmjs.org/npm/-/npm-6.8.0.tgz"
}
}
}
, "outdated": npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EPROTO: request to https://registry.npmjs.org/alexa-fhem failed, reason: write EPROTO 140041132111680:error:1012606B:elliptic curve routines:EC_POINT_set_affine_coordinates:point is not on curve:../deps/openssl/openssl/crypto/ec/ec_lib.c:723:
140041132111680:error:10098010:elliptic curve routines:o2i_ECPublicKey:EC lib:../deps/openssl/openssl/crypto/ec/ec_asn1.c:1095:
140041132111680:error:100D708E:elliptic curve routines:eckey_pub_decode:decode error:../deps/openssl/openssl/crypto/ec/ec_ameth.c:157:
140041132111680:error:0B09407D:x509 certificate routines:x509_pubkey_decode:public key decode error:../deps/openssl/openssl/crypto/x509/x_pubkey.c:124:
140041132111680:error:1416F0EF:SSL routines:tls_process_server_certificate:unable to find public key parameters:../deps/openssl/openssl/ssl/statem/statem_clnt.c:1948:
npm WARN registry Using stale data from https://registry.npmjs.org/ due to a request error during revalidation.
{
"homebridge-fhem": {
"current": "0.4.19",
"wanted": "0.4.19",
"latest": "0.5.1",
"location": "/usr/lib/node_modules/homebridge-fhem"
}
}
}
',
'summary' => 'Parsing error - \'null\' expected, at character offset 1564 (before "npm WARN registry Un...") at ./FHEM/42_npmjs.pm line 990.
',
'code' => 'E500'
}
};
2019.02.25 10:15:34 5: npmjs (fhemServer) - Notify: $VAR1 = [
'outdated: check failed',
'updatesAvailable: 0',
'state: error \'outdated\''
];
2019.02.25 10:16:20 5: npmjs (fhemServer) - Notify: $VAR1 = [
'SAVE'
];
echo n | sh -c "sudo -n npm update -g --json --silent --unsafe-perm " 2>&1
2019.02.25 10:17:29 5: npmjs (fhemServer) - Notify: $VAR1 = [
'state: command \'npm update \' in progress'
];
2019.02.25 10:17:29 4: npmjs (fhemServer) - execute command asynchronously (PID= 6576)
2019.02.25 10:17:29 4: npmjs (fhemServer) - control passed back to main loop.
2019.02.25 10:17:30 5: npmjs (fhemServer) - still waiting (read: no data).
2019.02.25 10:17:31 5: npmjs (fhemServer) - still waiting (read: no data).
2019.02.25 10:17:32 4: npmjs (fhemServer) - got result from asynchronous parsing.
2019.02.25 10:17:32 4: npmjs (fhemServer) - asynchronous finished.
2019.02.25 10:17:32 4: npmjs (fhemServer) - clean Subprocess
2019.02.25 10:17:32 4: npmjs (fhemServer) - JSON: {"error":{"detail":"","summary":"Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before \"(end of string)\") at ./FHEM/42_npmjs.pm line 990.\n","code":"E500"}}
2019.02.25 10:17:32 4: npmjs (fhemServer) - Write Readings
2019.02.25 10:17:32 5: npmjs (fhemServer) - $VAR1 = {
'error' => {
'summary' => 'Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 990.
',
'detail' => '',
'code' => 'E500'
}
};
2019.02.25 10:17:32 5: npmjs (fhemServer) - Notify: $VAR1 = [
'updated: error',
'state: error \'update \''
];
Welche Version? Steht in den INTERNALs. Fall die Version nicht von gestern ist, bitte zunächst aktualisieren.
Ansonsten: Von deinem Server aus konnte keine Verbindung ins Internet zu den NPM Paketservern hergestellt werden.
Ok, Version ist jetzt "42_npmjs.pm:v1.0.1-s18726/2019-02-24"
FHEM einmal neu gestartet und ein "statusRequest" gemacht, danach ein "outdated".
"update all" hat problemlos funktioniert!
Hallo,
nach dem ich node v10.x installiert habe, erhalte ich von npmjs den Hinweis "npm updates available".
Nach set npmjs update npm erhalte ich diese Fehlermeldung:
Error code E500
Summary:
Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 1066.
Internals:
FUUID 5c6827d7-f33f-cd72-4db2-0796c29e1b733179
HOST localhost
NAME fhemServer
NOTIFYDEV global,fhemServer
NR 497
NTFY_ORDER 50-fhemServer
STATE npm updates available
TYPE npmjs
VERSION 42_npmjs.pm:v1.0.1-s18726/2019-02-24
READINGS:
2019-02-25 08:08:16 installed successful
2019-02-25 15:01:10 nodejsVersion 10.15.1
2019-02-25 15:26:52 outdated check completed
2019-02-25 15:26:52 state npm updates available
2019-02-25 15:22:17 updated error
2019-02-25 15:01:10 updatesAvailable 1
helper:
lastSync 2019-02-25
Attributes:
alias Node.js Package Update Status
devStateIcon npm.updates.available:security@red:outdated npm.is.up.to.date:security@green:outdated .*npm.outdated.*in.progress:system_fhem_reboot@orange .*in.progress:system_fhem_update@orange warning.*:message_attention@orange error.*:message_attention@red
group System
icon npm-old
room System
Wäre für Hilfe dankbar.
VG Dieter
Bitte mal die Ausgabe von
{Dumper \$defs{'fhemServer'}}
posten.
Zitat von: Loredo am 25 Februar 2019, 16:13:10
Bitte mal die Ausgabe von
{Dumper \$defs{'fhemServer'}}
posten.
$VAR1 = \{
'NR' => 497,
'.attraggr' => [],
'HOST' => 'localhost',
'STATE' => 'error \'update npm@6.8.0\'',
'NOTIFYDEV' => 'global,fhemServer',
'.MetaInternals' => 1,
'READINGS' => {
'.updatedList' => {
'VAL' => '{"error":{"summary":"Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before \\"(end of string)\\") at ./FHEM/42_npmjs.pm line 1066.\\n","code":"E500","detail":""}}',
'TIME' => '2019-02-25 16:12:33'
},
'installed' => {
'VAL' => 'successful',
'TIME' => '2019-02-25 08:08:16'
},
'updatesAvailable' => {
'TIME' => '2019-02-25 15:01:10',
'VAL' => '1'
},
'state' => {
'VAL' => 'error \'update npm@6.8.0\'',
'TIME' => '2019-02-25 16:12:33'
},
'.packageList' => {
'VAL' => '{"listed":{"dependencies":{"npm":{"version":"6.4.1"},"dorita980":{"version":"3.1.1","resolved":"https://registry.npmjs.org/dorita980/-/dorita980-3.1.1.tgz","from":"dorita980"},"alexa-fhem":{"version":"0.5.22","from":"alexa-fhem","resolved":"https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz"}}},"versions":{"v8":"6.8.275.32-node.12","modules":"64","cldr":"33.1","nghttp2":"1.34.0","openssl":"1.1.0j","uv":"1.23.2","icu":"62.1","unicode":"11.0","ares":"1.15.0","napi":"3","zlib":"1.2.11","http_parser":"2.8.0","tz":"2018e","node":"10.15.1"},"outdated":{"npm":{"latest":"6.8.0","current":"6.4.1","wanted":"6.8.0","location":"/usr/lib/node_modules/npm"}}}',
'TIME' => '2019-02-25 16:12:16'
},
'updated' => {
'VAL' => 'error',
'TIME' => '2019-02-25 16:12:33'
},
'nodejsVersion' => {
'TIME' => '2019-02-25 15:01:10',
'VAL' => '10.15.1'
},
'.installedList' => {
'VAL' => '{"dependencies":{"alexa-fhem":{"dependencies":{"request":{"resolved":"https://registry.npmjs.org/request/-/request-2.88.0.tgz","version":"2.88.0","from":"request@>=2.88.0 <3.0.0","dependencies":{"har-validator":{"version":"5.1.3","from":"har-validator@>=5.1.0 <5.2.0","resolved":"https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz","dependencies":{"ajv":{"version":"6.9.2","from":"ajv@>=6.5.5 <7.0.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz"}}}}}},"resolved":"https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz","from":"alexa-fhem@0.5.22","version":"0.5.22"}}}',
'TIME' => '2019-02-25 08:08:16'
},
'outdated' => {
'TIME' => '2019-02-25 16:12:16',
'VAL' => 'check completed'
}
},
'.attrminint' => [],
'helper' => {
'lastSync' => '2019-02-25'
},
'VERSION' => '42_npmjs.pm:v1.0.1-s18726/2019-02-24',
'TYPE' => 'npmjs',
'.fhem' => {
'npm' => {
'debug' => 0,
'host' => 'localhost',
'nodejsversions' => {
'openssl' => '1.1.0j',
'nghttp2' => '1.34.0',
'cldr' => '33.1',
'modules' => '64',
'v8' => '6.8.275.32-node.12',
'tz' => '2018e',
'node' => '10.15.1',
'zlib' => '1.2.11',
'http_parser' => '2.8.0',
'ares' => '1.15.0',
'napi' => '3',
'unicode' => '11.0',
'uv' => '1.23.2',
'icu' => '62.1'
},
'listedpackages' => {
'dependencies' => {
'npm' => {
'version' => '6.4.1'
},
'dorita980' => {
'version' => '3.1.1',
'resolved' => 'https://registry.npmjs.org/dorita980/-/dorita980-3.1.1.tgz',
'from' => 'dorita980'
},
'alexa-fhem' => {
'resolved' => 'https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz',
'from' => 'alexa-fhem',
'version' => '0.5.22'
}
}
},
'installedpackages' => {
'dependencies' => {
'alexa-fhem' => {
'resolved' => 'https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.22.tgz',
'from' => 'alexa-fhem@0.5.22',
'version' => '0.5.22',
'dependencies' => {
'request' => {
'from' => 'request@>=2.88.0 <3.0.0',
'resolved' => 'https://registry.npmjs.org/request/-/request-2.88.0.tgz',
'dependencies' => {
'har-validator' => {
'from' => 'har-validator@>=5.1.0 <5.2.0',
'resolved' => 'https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz',
'dependencies' => {
'ajv' => {
'version' => '6.9.2',
'from' => 'ajv@>=6.5.5 <7.0.0',
'resolved' => 'https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz'
}
},
'version' => '5.1.3'
}
},
'version' => '2.88.0'
}
}
}
}
},
'errors' => {
'summary' => 'Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 1066.
',
'code' => 'E500',
'detail' => ''
},
'updatedpackages' => {
'error' => ${$VAR1}->{'.fhem'}->{'npm'}->{'errors'}
},
'outdatedpackages' => {
'npm' => {
'wanted' => '6.8.0',
'current' => '6.4.1',
'latest' => '6.8.0',
'location' => '/usr/lib/node_modules/npm'
}
},
'cmd' => 'update npm@6.8.0',
'npmglobal' => 1
}
},
'NTFY_ORDER' => '50-fhemServer',
'FUUID' => '5c6827d7-f33f-cd72-4db2-0796c29e1b733179',
'NAME' => 'fhemServer'
};
Servus,
hast du hierzu schon irgendwelche Erkenntnisse?
Oder brauchst du noch weitere Infos?
Danke und VG
Dieter
Meine Vermutung ist, dass das NPM Kommando keine Ausgabe generiert hat. Dann wäre es ein Fehler bei dir auf dem Server.
Was passiert denn, wenn du nochmal set outdated ausführst? Was passiert, wenn du selbst in der Shell NPM aktualisierst:
sudo npm update -g npm
Update auf der shell
dieter@intelnuc:~$ sudo npm update -g npm
[sudo] password for dieter:
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
/usr/bin/npx -> /usr/lib/node_modules/npm/bin/npx-cli.js
+ npm@6.8.0
added 54 packages from 9 contributors, removed 15 packages and updated 44 packages in 6.238s
Nach Neustart ein outdated mit Update für alexa-fhem als Ergebnis.
Update ausgeführt, alles wieder gut.
Auch wenn es das npmjs update Problem nicht gelöst hat,
danke für die Hilfe.
VG Dieter
Dann hast du keine passwortlose sudo Berechtigung vergeben. Die Fehlermeldung von "sudo" hätte eigentlich abgefangen werden sollen, so dass du sie hättest sehen müssen. Bei mir klappt das hier, ich kann es also nicht nachstellen.
Ich habe in /etc/sudoers.d eine Datei fhem mit dem Inhalt
fhem ALL=NOPASSWD: ALL
Sollte das nicht genau die passwortlose sudo Berechtigung sein?
Wenn der User, unter dem FHEM läuft, auch "fhem" heißt, ja.
Hast du Deinem fhem User jemals ein Passwort generiert?
Ich hatte kürzlich ein ähnliches Problem.
Mit einem "sudo passwd fhem" war die Sache erledigt und der Eintrag in der der sudoers hat korrekt funktioniert.
müsste ich jetzt den user dieter mit in die Datei fhem unter sudoers.d packen?
dieter ALL=NOPASSWD: ALL
Oder eine separate Datei unter sudoers.d? Z.B. Dieter
Oder tatsächlich für fhem ein Passwort vergeben?
Möchte nichts falsch machen, nicht das ich mich noch aussperre oder ähnliches.
Danke.
Zur Sicherheit kannst du zunächst ein
ps aux | grep -i fhem
machen
Dann siehst in der ersten Spalte, unter welchem User dein fhem.pl läuft.
Bei mir sieht das so aus:
nuc@nuc:~$ ps aux | grep -i fhem
fhem 12009 6.6 5.0 324460 200460 ? S 20:54 0:37 /usr/bin/perl fhem.pl fhem.cfg
fhem 12033 0.2 0.8 771300 33636 ? Sl 20:54 0:01 node /usr/bin/alexa-fhem -c ./alexa-fhem.cfg
Dann fügst du die Zeile in eine Datei unter sudoers.d ein.
Wie die Datei heißt, ist egal. Wenn du schon eine dort hast, dann füge die Zeile einfach hinzu.
Die Berechtigung sollte 0440 sein.
Ein eigenes Passwort für den fhem User zu generieren stellt kein Problem dar.
Hallo zusammen,
ein set outdated hat mir heute zurückgeliefert, dass es ein update für npm gibt. Das set update npm liefert folgenden Fehler:
Error code E500
Summary:
Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 1066.
Detail:
System ist ein Raspi...
Beste Grüße
Torsten
Zitat von: ToKa am 28 Februar 2019, 19:55:06
Hallo zusammen,
ein set outdated hat mir heute zurückgeliefert, dass es ein update für npm gibt. Das set update npm liefert folgenden Fehler:
Error code E500
Summary:
Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/42_npmjs.pm line 1066.
Detail:
System ist ein Raspi...
Beste Grüße
Torsten
mit der Sache habe ich gestern auch gekämpft - und verloren ... ppm scheitert bei mir an einem Modul ... aber wichtig ist es mir, dass ich wenigstens da auf einfache angezeigt bekomme, dass ich etwas tun sollte :-) Also keinen wirklichen Druck auf der Pipeline
Hi Loredo,
vielen Dank für dein Modul, allerdings zeigt es mir keine Updates an, da dein Modul beim Parsen auf einen Fehler läuft:
Error code E500
Summary:
Parsing error - malformed JSON string, neither array, object, number, string or atom, at character offset 439 (before "(node:17630) [DEP002...") at ./FHEM/42_npmjs.pm line 1068.
Detail:
{
"versions":
{"http_parser":"2.8.1","node":"8.11.1","v8":"6.2.414.50","uv":"1.18.0","zlib":"1.2.8","ares":"1.14.0","modules":"57","nghttp2":"1.25.0","openssl":"1.0.2l","icu":"57.1","unicode":"8.0","cldr":"29.0","tz":"2016b"}
, "listed": {
"dependencies": {
"alexa-fhem": {
"version": "0.5.24",
"from": "alexa-fhem@0.5.24",
"resolved": "https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.24.tgz"
}
}
}
, "outdated": (node:17630) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
{
"supports-color": {
"current": "5.5.0",
"wanted": "5.5.0",
"latest": "6.1.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/chalk/node_modules/supports-color"
},
"color-convert": {
"current": "1.9.3",
"wanted": "1.9.3",
"latest": "2.0.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert"
},
"qs": {
"current": "6.5.2",
"wanted": "6.5.2",
"latest": "6.6.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/qs"
},
"tough-cookie": {
"current": "2.4.3",
"wanted": "2.4.3",
"latest": "3.0.1",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/tough-cookie"
},
"jsprim": {
"current": "1.4.1",
"wanted": "1.4.1",
"latest": "2.0.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/http-signature/node_modules/jsprim"
},
"jsbn": {
"current": "0.1.1",
"wanted": "0.1.1",
"latest": "1.1.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn"
},
"ecc-jsbn": {
"current": "0.1.2",
"wanted": "0.1.2",
"latest": "0.2.0",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn"
},
"tweetnacl": {
"current": "0.14.5",
"wanted": "0.14.5",
"latest": "1.0.1",
"location": "/usr/local/lib/node_modules/alexa-fhem/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/node_modules/tweetnacl"
}
}
}
OK
Liegt es an ": (node:17630) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead."?
Kannst bwz. willst du das abfangen? Ich habe eine recht alte nodejs-Version, aber outdated scheint an sich ja zu funktionieren und Updates auszugeben.
Danke dir vorab und viele Grüße,
Tim
ich hätte noch einen vorschlag:
wie wäre es in der meldungen zum sudoers eintrag fhem durch den tatsächlichen user zu ersetzen unter dem fhem gerade läuft?
und mir ist eben aufgefallen das im fhemweb popup die fehlermeldung keine zeilenumbrüche in der sudoers meldung hat. da fehlt vermutlich ein <pre></pre> oder das ersetzen der \n durch <br>.
Das mit dem User kann ich einbauen. Und das fehlende pre ist natürlich jetzt logisch, nun wo fhemweb repariert ist :)
Hi loredo,
entschuldige, dass ich erneut schreibe (siehe beitrag #58). Bei mir gibt's immer den Fehler E500 wegen malformed JSON String. Wenn ich es richtig lese, dann liegt es an der deprecation warning bei meiner nodejs8-Installation, die nicht geparsed werden kann.
Hast du eine Idee und kannst mir helfen?
Danke vorab und vielen Dank für das coole hilfreiche Modul!
Gruß,
Tim
Derzeit nicht, die Warnungen abzufangen oder zu unterdrücken ist nicht so leicht.
Danke für die Antwort, dann hoffe ich, dass das irgendwann kommt. Ich finde das Modul ziemlich gut, kann es dadurch aber leider zurzeit nutzen :(
irgendwie macht das Modul gerade bei mir Probleme.
Auf der Konsole meldet "npm outdated" nichts.
In FHEM bekomme ich aber folgende Anzeige nach einem "set myServer outdated":
installed successful 2019-03-07 21:24:51
nodejsVersion 11.12.0 2019-03-21 12:00:36
outdated check completed 2019-03-28 12:46:16
state npm updates available 2019-03-28 12:46:16
updated successful 2019-03-07 21:24:35
updatesAvailable 1 2019-03-14 03:19:32
Ein anschliessendes "get myServer showOutdatedList":
Package Name Installed Version Update Version Upgrade Version
error ? ? ?
das passiert, wenn NPM ein Modul nicht richtig deinstalliert hat und hat meist mit dem jeweiligen NPM Modul zu tun.
Du musst den richtigen Konsolen Befehl eingeben, um das nachzuvollziehen. Wahrscheinlich ist, dass du keine NPM Installation im User Space hast, sondern global, also:
npm outdated -g
Daran kann das npmjs Modul in FHEM allerdings nichts ändern, das ist ein NPM Problem.
@Loredo
Ich hab heute ein komischen Fehler beim "NPM outdated" bekommen, den ich mir nicht erklären kann.
Ein sudo npm outdated -g auf der Konsole führt zu keiner ausgäbe, also sollte alles aktuell sein.
Hier mal ein list des npm devices:
Internals:
DEF localhost
FUUID 5c62c5e8-f33f-abd1-fac6-9c86cdb4305b9c22
FVERSION 42_npmjs.pm:v1.1.3-s20855/2019-12-30
HOST localhost
NAME FhemNUC.npm
NOTIFYDEV global,FhemNUC.npm
NR 1196
NTFY_ORDER 50-FhemNUC.npm
STATE error 'outdated'
TYPE npmjs
READINGS:
2019-03-30 15:47:20 installed error
2019-09-07 07:38:01 nodejsVersion 12.10.0
2020-01-03 12:38:55 outdated check failed
2020-01-03 12:38:55 state error 'outdated'
2019-12-11 21:06:05 updateListAsJSON {}
2019-12-11 21:06:05 updatesAvailable 0
helper:
lastSync 2020-01-03
Attributes:
DbLogExclude .*
alias Node.js Update Status
devStateIcon npm.updates.available:security@red:outdated npm.is.up.to.date:security@green:outdated .*in.progress:system_fhem_reboot@orange warning.*:message_attention@orange error.*:message_attention@red
group Software Status
icon nodejs
room 9.91_System
updateListReading 1
webCmd outdated
Bisher hat alles einwandfrei funktioniert, gab es ein Update und ich hab irgendwas verpasst?
Kann ich noch weiter zur Fehlersuche beitragen?
Danke und Gruß Robert
Hast du schon geschaut, was die Fehlermeldung genau sagt? Dafür ist der Getter showErrorList da ...
Zitat von: Loredo am 03 Januar 2020, 13:34:55
Hast du schon geschaut, was die Fehlermeldung genau sagt? Dafür ist der Getter showErrorList da ...
Es kommt folgende Meldung, siehe unten.
Aber das mit dem sudo Passwort kann ich nach vollziehen, da ich an den Einstellungen nicht geändert habe.
Error code E500
Summary:
Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 917 (before "sudo: Ein Passwort i...") at ./FHEM/42_npmjs.pm line 1161.
Detail:
{
"versions":
{"node":"12.10.0","v8":"7.6.303.29-node.16","uv":"1.31.0","zlib":"1.2.11","brotli":"1.0.7","ares":"1.15.0","modules":"72","nghttp2":"1.39.2","napi":"4","llhttp":"1.1.4","http_parser":"2.8.0","openssl":"1.1.1c","cldr":"35.1","icu":"64.2","tz":"2019a","unicode":"12.1"}
, "listed": {
"dependencies": {
"homebridge": {
"version": "0.4.50",
"from": "homebridge",
"resolved": "https://registry.npmjs.org/homebridge/-/homebridge-0.4.50.tgz"
},
"homebridge-fhem": {
"version": "0.5.8",
"from": "homebridge-fhem",
"resolved": "https://registry.npmjs.org/homebridge-fhem/-/homebridge-fhem-0.5.8.tgz"
},
"n": {
"version": "6.1.3",
"from": "n",
"resolved": "https://registry.npmjs.org/n/-/n-6.1.3.tgz"
},
"npm": {
"version": "6.13.4",
"from": "npm",
"resolved": "https://registry.npmjs.org/npm/-/npm-6.13.4.tgz"
}
}
}
, "outdated": sudo: Ein Passwort ist notwendig
}
Die Erklärung findest du hier:
https://forum.fhem.de/index.php/topic,89745.msg1006945.html#msg1006945 (https://forum.fhem.de/index.php/topic,89745.msg1006945.html#msg1006945)
Also mal hopp deinen sudo Eintrag erweitern.
Zitat von: Loredo am 03 Januar 2020, 15:08:04
Die Erklärung findest du hier:
https://forum.fhem.de/index.php/topic,89745.msg1006945.html#msg1006945 (https://forum.fhem.de/index.php/topic,89745.msg1006945.html#msg1006945)
Also mal hopp deinen sudo Eintrag erweitern.
Kannst du mir noch einen schubs in die richtige Richtung geben, was ich eintragen soll?
Bisher hab ich folgendes genommen und damit ging es ohne problem:
fhem ALL=(ALL) NOPASSWD: /opt/fhem/FHEM/backup.sh, /etc/init.d/homebridge, /usr/sbin/service, /bin/systemctl, /usr/bin/apt-get, /usr/sbin/smartctl, /usr/bin/npm outdated,
Schau mal in die Commandref:
http://fhem.de/commandref.html#npmjs
Zitat von: Loredo am 03 Januar 2020, 18:15:59
Schau mal in die Commandref:
http://fhem.de/commandref.html#npmjs
Sorry hab ich wohl übersehen.
Ändere ich gleich.
Danke und Gruß Robert
Gesendet von iPhone mit Tapatalk Pro
Zitat von: Loredo am 03 Januar 2020, 18:15:59
Schau mal in die Commandref:
http://fhem.de/commandref.html#npmjs
Muss das Ganze genau so eingetragen werden wie im commandref?
Ich habe bisher immer als mir Komma getrennt in einer Zeile stehen, damit man immer eine Zeile pro User hat.
Hab die commands auch in einer Reihe so eingetragen wie im commandref, nur bekomme ich immer noch den gleichen Fehler.
Heute Abend kann ich es mir am pc noch mal genau anschauen, aktuelle kann ich nur per Mobilgeräte zugreifen.
Hast du noch eine Idee?
Danke und Gruß Robert
Gesendet von iPhone mit Tapatalk Pro
Wenn du das abwandeln willst, sei es dir überlassen, das Endergebnis zählt. Für eine automatische Verarbeitung per Script sind einzelne Zeilen pro Kommando jedoch besser. Außerdem leidet meiner Meinung nach die Übersicht ansonsten ziemlich stark ...
Wichtig ist, dass du die Kommandos genau so übernimmst, also auch mit "*" am Ende.
Zitat von: Loredo am 04 Januar 2020, 10:06:00
Wenn du das abwandeln willst, sei es dir überlassen, das Endergebnis zählt. Für eine automatische Verarbeitung per Script sind einzelne Zeilen pro Kommando jedoch besser. Außerdem leidet meiner Meinung nach die Übersicht ansonsten ziemlich stark ...
Wichtig ist, dass du die Kommandos genau so übernimmst, also auch mit "*" am Ende.
Das mit der Datei per User habe ich bisher so garnicht gekannt.
hab ich gleich mal umgesetzt und die npmjs befehle hinzu gefügt.
Bekomme aber immer noch die gleiche Fehler Meldung.
Hast du es auf Debian oder Ubuntu am laufen?
Edit: Bei der Englischen und der Deutschen Version des Commandrefs gibt es einen unterschied bei den Befehlen, die erlaubt werden müssen.
Outdated fehlt bei der deutschen Version.
Edit2: Ich hab mich mal per su fhem eingelogt und geschaut ob das command sich ohne Passwort Eingabe ausführen lässt.
Test war erfolgreich. Also direkt in der Konsole als user fhem kein problem.
Läuft am besten im FHEM Docker Image, da ist alles aufeinander abgestimmt (Debian Buster).
Wenn es bei dir händisch geht, dann stimmt trotzdem etwas mit deiner Systemumgebung nicht. Der eingangs schon erwähnte Getter wird dir sicherlich verraten, was nicht stimmt. Ggf stimmt beispielsweise der Pfad zu deinem npm Executable nicht.
Zitat von: Loredo am 04 Januar 2020, 14:35:43
Läuft am besten im FHEM Docker Image, da ist alles aufeinander abgestimmt (Debian Buster).
Wenn es bei dir händisch geht, dann stimmt trotzdem etwas mit deiner Systemumgebung nicht. Der eingangs schon erwähnte Getter wird dir sicherlich verraten, was nicht stimmt. Ggf stimmt beispielsweise der Pfad zu deinem npm Executable nicht.
Ich versteh nur nicht wo da Problem her kommt.
Die ganz Zeit hat es ja immer gut funktioniert.
Auch auf Ubuntu.
Wenn es ja von Hand geht, kann es dann nicht eher doch etwas im Modul sein?
Oder könnte es möglich sein, dass es einfach ein unterscheide bei der Implementierung zwischen Ubuntu und Debian liegt?
Auf docker umzustellen sehe ich jetzt nicht als Option, sehe da bisher keinen Vorteile für mich.
Edit:
So ich hab mich noch mal auf die suche im tiefen des Systems begeben.
Die Lösung ist jetzt folgende:
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/npm outdated *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/npm update *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/npm install *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/npm uninstall *
Der Pfad zu npm ist ein ganz anderer, ob das eine Eigenart von Ubuntu ist keine Ahnung.
Jetzt geht es wenigstens.
Vielleicht hilft es ja jemanden weiter.
Gruß Robert
Gesendet von iPhone mit Tapatalk Pro
Hatte ich ja oben geschrieben.
Kommt eben ganz darauf an, wie du NodeJS und NPM installiert hast.
Hallo Zusammen,
seit dem letzten Update (2020-01-04) funktioniert mein npmjs-Device nicht mehr.
showErrorList liefert folgendes Ergebnis:Error code E500
Summary:
Parsing error - malformed JSON string, neither tag, array, object, number, string or atom, at character offset 492 (before "sh: 2: -n: not found...") at ./FHEM/42_npmjs.pm line 1165.
Detail:
{
"versions":
{"http_parser":"2.8.0","node":"8.17.0","v8":"6.2.414.78","uv":"1.23.2","zlib":"1.2.11","ares":"1.10.1-DEV","modules":"57","nghttp2":"1.39.2","napi":"4","openssl":"1.0.2s","icu":"60.1","unicode":"10.0","cldr":"32.0","tz":"2017c"}
, "listed": {
"dependencies": {
"alexa-fhem": {
"version": "0.5.37",
"from": "alexa-fhem",
"resolved": "https://registry.npmjs.org/alexa-fhem/-/alexa-fhem-0.5.37.tgz"
},
"npm": {
"version": "6.13.4"
}
}
}
, "outdated": sh: 2: -n: not found
}
OS: raspian
FVERSION: 42_npmjs.pm:v1.1.4-s20878/2020-01-04
nodejsVersion: 8.17.0
Hat jemand eine Idee?
Beste Grüße
ThomasReu
Ich denke ich konnte endlich herausfinden, weshalb es hier und dort zu eher unerklärlichen Fehlern kommt:
Die Befehle "npm outdated" und "npm list" schlagen fehl, wenn die Zugriffsrechte für node_modules nicht stimmen. Diese sind normalerweise zumindest für alle lesbar, es sei denn, die umask entspricht nicht dem default 0022. Dies ist insbesondere beim Einsatz des fhem-docker Images der Fall; dort wird die umask vom fhem Prozess über sudo auch an den npm Prozess vererbt, so dass dort nach einem Update über das npmjs Modul die Zugriffsrechte nicht mehr stimmen.
Ich habe dies nun in einer neuen Version des npmjs Moduls behoben, indem dort die umask auf 0022 gesetzt wird. Damit sollten die Probleme beseitigt sein.
Muss noch Zeile 1783 fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm outdated *<br>
weg?
Müssen nicht
RÜCKMELDUNG !!
Nach dem Update von heute (2020-01-10) läuft bei mir das npmjs-Device wieder wie gewohnt.
SUPER! Dankeschön!
Thomas
Hallo Zusammen,
ich nutze das Modul 42_npmjs.pm seit geraumer Zeit und bin sehr zufrieden. Nun habe ich leider (never touch...) ein "Upgrade" auf meinem PI gemacht, seitdem klappt das Tool leider nicht mehr. Kann das sein, dass es an einer neuen Version von Node liegt (node -v ergibt 12.20.0)?
Bitte jetzt etwas ratlos, wer kann mir da einen Tip geben?
VG
Pit
Servus
Also ich habe node 10.21.0, weiß aber nicht ob es daran liegt...
Grüße
Andy
Hallo,
habe jetzt wieder auf Node 10.X im Einsatz, scheint zu klappen.
Habe jetzt auch die gesamte Installation entsprechend der sehr ausführlichen Beschreibung auf dem github vorgenommen, ist echt klasse, auch mit diesem Web-Interface "Homebridge Config UI X".
https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian
Vereinfacht das Thema Homebridge doch enorm!
Viele Grüße
Pit