Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

Begonnen von Otto123, 31 Mai 2020, 18:30:55

Vorheriges Thema - Nächstes Thema

kjmEjfu

Ich bin jetzt übrigens über den ersten Anwendungsfall gestolpert, für den man sonos/status/name_or_uuid_of_speaker/avtransport bräuchte.
So hat mein Sohn eine nervig Neigung überall Gruppen zu erstellen und wenn man dann z.B. im Bad automatisiert Radio abspielt, gibt es böse Schreie. Also schicke ich bei automatischen Aktionen an seine Box sicherheitshalber ein "leavegroup". Das hat aber den Nachteil, dass dadurch die Playlist bei ihm auf den 1. Titel zurückgesetzt wird.

Mit

"CurrentTrack" : 5,
  "CurrentTrackDuration" : "0:04:04",


lässt sich zumindest anschließend wieder zur richtigen Stelle springen ;-)

Wobei das theoretisch eher ein Bug in der sonos2mqtt Implementation ist, denn wenn ich in der App eine Box aus einer Gruppe entferne, dann bleibt die Position in der Playlist erhalten.
Migriere derzeit zu Home Assistant

Otto123

Wir sammeln das mal und machen bei Stephan einen Issue auf?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

87insane

Haha wie er das bad als Beispiel nimmt. Hab mir sogar longpush extra am bad dafür gemacht. Ich erlebe das auch immer wieder.
Sonos sieht das so nicht vor aber es sollte möglich sein die Player trotz Gruppe einzeln an zu sprechen. Dann wäre das obsolet und sogar noch ein Bonus Feature.
Ich stecke aktuell nicht so tief drin da ich beruflich unendlich viel zu tun habe. Lese aber immer mal wieder hier drüber.. Macht bloß weiter so :)

kjmEjfu

Ich habe jetzt mal meine userReadings um eins erweitert:

shuffle:playmode.* { if (ReadingsVal($name,"playmode","NORMAL") =~ m/SHUFFLE/) {return "on"} else {return "off"} ;},
repeat:playmode.* { my $val = ReadingsVal($name,"playmode","none"); my %rets = ("none" => "unknown","NORMAL" => "off","SHUFFLE" => "off","REPEAT_ALL" => "all","SHUFFLE_NOREPEAT" => "off","SHUFFLE_REPEAT_ONE" => "off"); return $rets{$val} if $rets{$val}; },
currentMediaSource:currentTrack_TrackUri.* { my $val = ReadingsVal($name,"currentTrack_TrackUri","none"); $val =~ /:([^:][a-zA-Z]*)/; my %rets = ("none" => "unknown","spotify" => "Spotify","tunein" => "TuneIn","catalog" => "Amazon"); return $rets{$1}; },
groupMode { (ReadingsVal($name,"name","0") ne ReadingsVal($name,'groupName','0') ? "group" : "standalone") }


fühlt also das groupMode je nachdem, ob Gruppe oder nicht.
Und dann lässt sich recht easy mit etwas wie

{
    my $mytrack = "";
    fhem "set Sonos_XYZ leaveGroup; set Sonos_XYZ selecttrack $mytrack;" if (ReadingsVal("Sonos_XYZ","groupMode","") eq "group");
}


vorher abfragen, ob man in einer Gruppe ist und falls ja, dann zumindest der Track wiederherstellen. Man könnte auch mit "seek" an die vorherige Stelle springen, aber die aktuelle Position im Track wird nirgendwo übergeben oder ich finde es einfach nicht.

Damit das funktioniert, muss in der ReadingsList gesetzt sein:

$DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/control:.* { json2nameValue($EVENT) }
$DEVICETOPIC/ZoneInfo:.* { json2nameValue($EVENT) }
$DEVICETOPIC/error:.* { json2nameValue($EVENT) }
sonos/status/xyz/avtransport:.* { json2nameValue($EVENT) }


Leider ist der Topic-Pfad für avtransport etwas schräg, so dass man hier tatsächlich auch den Namen (kleingeschrieben) einsetzen muss.

Ich fände es ja schöner, wenn sonos/status/name_or_uuid_of_speaker/avtransport unter sonos/uuid_of_speaker/status/avtransport liegen würde (gleiches gilt für sonos/status/name_or_uuid_of_speaker/renderingcontrol), aber nun gut.
Migriere derzeit zu Home Assistant

87insane

Das userreading gibt es im devstateicon schon. Also zumindest die Abfrage. Würde dann eher auch den setter darüber setzen. Ist ja eh schon die deluxe Edition von meinem Ursprung.

kjmEjfu

Zitat von: 87insane am 13 November 2020, 16:53:27
Das userreading gibt es im devstateicon schon. Also zumindest die Abfrage. Würde dann eher auch den setter darüber setzen. Ist ja eh schon die deluxe Edition von meinem Ursprung.

Da habe ich es vermutlich auch her geklaut ;-)
Ich finde es immer schöner, wenn ich solche Abfragen/Auswertungen direkt in ein Reading packe, weil ich mir doppelten Code spare, wenn ich es nochmal brauche.
Migriere derzeit zu Home Assistant

TomLee

#756
Hi,

hab mich nun nach Wochen der Neu-Installation meines FHEM-Server (bisher ohne Sonos-Integration, weil ich die ganzen Bibliotheken welche das Sonos-Modul erfordert nicht unnötig installieren wollte) heute für s2m entschieden und installiert.

Den automatischen Start hatte ich direkt im System vor (Alternative Wiki), klappt merkwürdigerweise auch, hab aber einen Fehler gemacht.

Folgende Fragen stelle ich mir jetzt:

Bei
pi@FHEMPIOS:~ $ pm2 start -- --mqtt mqtt://user:passwd@192.168.188.26:1883

bekam ich das zurück
                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/home/pi/.pm2
[PM2] PM2 Successfully daemonized
[PM2][ERROR] File ecosystem.config.js not found


Kann ich ERROR] File ecosystem.config.js not found einfach ignorieren ?


Dann zu meinem Fehler:

Man soll erst s2m starten pm2 start sonos2mqtt -- --mqtt mqtt://Thomas:3983@192.168.188.26:1883

Hab ich aber nicht gemacht  ::) und direkt pm2 startup mit anschliessendem pm2 save, sah dann so aus:

pi@FHEMPIOS:~ $ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pi@FHEMPIOS:~ $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=pi
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/pi/.pm2
PIDFile=/home/pi/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-pi.service
Command list
[ 'systemctl enable pm2-pi' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-pi.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-pi...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-pi.service → /etc/systemd/system/pm2-pi.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd
pi@FHEMPIOS:~ $ pm2 save
[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force


Wenn ich einen reboot vom System mache wird s2m aber korrekt gestartet, auch wenn am Ende stand
[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force


In /etc/systemd/system/pm2-pi.service steht:
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=pi
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/$
Environment=PM2_HOME=/home/pi/.pm2
PIDFile=/home/pi/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target


Was mach ich jetzt ? Kann ich /etc/systemd/system/pm2-pi.service einfach löschen und dann nochmal von vorne:

pm2 start -- --mqtt mqtt://user:passwd@192.168.188.26:1883
pm2 startup
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pm2 save


? ? ?

Wenn ich das machen sollte dann geh ich davon aus das die Meldung [PM2] Remove init script via:
$ pm2 unstartup systemd
wieder kommen wird, führ ich das dann auch aus ?

Hat jemand da genauen Durchblick und kann mir weiterhelfen ?

Gruß

Thomas

Otto123

Hallo Thomas,

ZitatHat jemand da genauen Durchblick und kann mir weiterhelfen ?
Würde ich nicht behaupten, aber ich gebe mir Mühe und schaue mal in meine Aufzeichnungen. Ich habe das alles schon mal intensiv durchgespielt. Ich melde mich.

Gruß otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Korrektur, ich war so verwundert über die Meldungen (hab doch alles vorher mehrfach geübt, auf dem RaspiZero) das ich nicht richtig geschaut habe.

Ich hatte zuvor s2m gestartet, so wie es oben auch steht.

Also meine Fragen berechtigt warum es zu den Meldungen kam, vorallem:

[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force


Hier nochmal alles so wie ich es auch hintereinander ausgeführt habe.

pi@FHEMPIOS:~ $ pm2 start -- --mqtt mqtt://user:passwd@192.168.188.26:1883

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/home/pi/.pm2
[PM2] PM2 Successfully daemonized
[PM2][ERROR] File ecosystem.config.js not found
pi@FHEMPIOS:~ $ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pi@FHEMPIOS:~ $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=pi
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/pi/.pm2
PIDFile=/home/pi/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-pi.service
Command list
[ 'systemctl enable pm2-pi' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-pi.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-pi...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-pi.service → /etc/systemd/system/pm2-pi.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd
pi@FHEMPIOS:~ $ pm2 save
[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force

Otto123

#759
Hallo Thomas,

ich glaube dein Problem ist jetzt:
Du hast alles als Pi gemacht, der Prozess startet jetzt auch mit user pi - aber manches hast Du mit sudo gemacht?
Der pm2 kann praktisch in jedem User Kontext separat laufen (ihr könnt mich schlagen wenn das nicht stimmt - ich hatte es geschafft das alles doppelt lief)
Schau mal pm2 läuft als user fhem, als user pi und als user root sehe ich nix:
pm2 list
[PM2] Spawning PM2 daemon with pm2_home=/home/pi/.pm2
[PM2] PM2 Successfully daemonized
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
pi@raspib3plus:~ $ sudo -u fhem pm2 list
┌─────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ sonos2mqtt    │ default     │ N/A     │ fork    │ 20737    │ 21D    │ 0    │ online    │ 0%       │ 52.8mb   │ fhem     │ disabled │
└─────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
pi@raspib3plus:~ $ sudo pm2 list
┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
pi@raspib3plus:~ $

Ich werde aber deinen Prozess nochmal durchspielen, offenbar fehlt ja was in der Doku :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

#760
Ganz genau hab ich es so gemacht:

pi@FHEMPIOS:~ $ sudo npm install pm2 -g
npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
/usr/bin/pm2 -> /usr/lib/node_modules/pm2/bin/pm2
/usr/bin/pm2-dev -> /usr/lib/node_modules/pm2/bin/pm2-dev
/usr/bin/pm2-docker -> /usr/lib/node_modules/pm2/bin/pm2-docker
/usr/bin/pm2-runtime -> /usr/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/pm2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})

+ pm2@4.5.0
added 198 packages from 195 contributors in 44.737s
pi@FHEMPIOS:~ $ sudo npm install -g sonos2mqtt
npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
/usr/bin/sonos2mqtt -> /usr/lib/node_modules/sonos2mqtt/lib/index.js

> fast-xml-parser@3.17.5 postinstall /usr/lib/node_modules/sonos2mqtt/node_modules/fast-xml-parser
> node tasks/postinstall.js || exit 0

Love fast-xml-parser? Check https://amitkumargupta.work for more projects and contribution.

+ sonos2mqtt@3.1.0
added 117 packages from 75 contributors in 30.054s


   ╭────────────────────────────────────────────────────────────────╮
   │                                                                │
   │      New patch version of npm available! 6.14.8 → 6.14.9       │
   │   Changelog: https://github.com/npm/cli/releases/tag/v6.14.9   │
   │               Run npm install -g npm to update!                │
   │                                                                │
   ╰────────────────────────────────────────────────────────────────╯

pi@FHEMPIOS:~ $ sudo npm install -g npm
/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.14.9
added 5 packages from 3 contributors, removed 4 packages and updated 3 packages in 41.615s
pi@FHEMPIOS:~ $ pm2 start -- --mqtt mqtt://user:passwd@192.168.188.26:1883

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/home/pi/.pm2
[PM2] PM2 Successfully daemonized
[PM2][ERROR] File ecosystem.config.js not found
pi@FHEMPIOS:~ $ pm2 startup
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
pi@FHEMPIOS:~ $ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=pi
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/pi/.pm2
PIDFile=/home/pi/.pm2/pm2.pid
Restart=on-failure

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-pi.service
Command list
[ 'systemctl enable pm2-pi' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-pi.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-pi...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-pi.service → /etc/systemd/system/pm2-pi.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd
pi@FHEMPIOS:~ $ pm2 save
[PM2] Saving current process list...
[PM2][WARN] PM2 is not managing any process, skipping save...
[PM2][WARN] To force saving use: pm2 save --force


Node.js war schon installiert und zwar mit sudo:

Node.js installieren:

https://github.com/nodesource/distributions/blob/master/README.md

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt-get install -y nodejs

testen ob alles klappt:

npm -v
node -v


edit:

das -y bei apt-get install -y nodejs hab ich mein ich rausgenommen, weil du (glaub ich) das mal erwähnt hattest.

edit2:

wenn ich reboote dann startet s2m wie ich vorhatte mit user pi:

pi@FHEMPIOS:~ $ pm2 list
┌─────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ sonos2mqtt    │ default     │ N/A     │ fork    │ 655      │ 31s    │ 0    │ online    │ 0%       │ 44.4mb   │ pi       │ disabled │
└─────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘


Die Meldungen irritieren mich halt.

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Mag ja sein. Für mich unbefriedigend. Nichts auf meinem neuen System hat bisher Fehlermeldungen (die waren hier) verursacht.

Werde wieder auf den vorherigen Stand zurückgehen und mit einer anderen Karte die Installation auf meinem Haupt-System-RasPi "trainieren".



Otto123

Warte mal noch, ich will das mal durchspielen. :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Bei mir läuft das sauber durch. Diese Fehlermeldung
[PM2][ERROR] File ecosystem.config.js not found
habe ich nicht  ???
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz