Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Einen PI3 durch ioBroker herunterfahren?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Einen PI3 durch ioBroker herunterfahren?

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
87 Beiträge 10 Kommentatoren 7.4k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    @Kusi Dann muss man es wohl so machen wie in dem Script.

    Gib mal

    ps -ef | grep plex | wc -l
    

    ein. Da sollte dann bei laufendem System eine Zahl > 1 rauskommen.

    K Offline
    K Offline
    Kusi
    schrieb am zuletzt editiert von
    #63

    @mickym Wenn Plex läuft, dann kommt eine 2, ansonsten eine 1.

    mickymM 1 Antwort Letzte Antwort
    0
    • K Kusi

      @mickym Wenn Plex läuft, dann kommt eine 2, ansonsten eine 1.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #64

      @Kusi Genau . so überprüft dass das Script auch.

      so nun brauchen wir wahrscheinlich Hilfe ;) - aber im Grunde sieht es nun so aus.

      Du führst vom iobroker aus:

      exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
      

      Statt 'Datenpunkte.0.Dienststatus' gibst halt einen Datenpunkt ein, den Du unter 0_userdata.0 selbst angelegt hast.

      Dann sollte im iobroker nach ausführen in dem Datenpunkt 1 oder 2 stehen. ;)

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      mickymM K 2 Antworten Letzte Antwort
      0
      • mickymM mickym

        @Kusi Genau . so überprüft dass das Script auch.

        so nun brauchen wir wahrscheinlich Hilfe ;) - aber im Grunde sieht es nun so aus.

        Du führst vom iobroker aus:

        exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
        

        Statt 'Datenpunkte.0.Dienststatus' gibst halt einen Datenpunkt ein, den Du unter 0_userdata.0 selbst angelegt hast.

        Dann sollte im iobroker nach ausführen in dem Datenpunkt 1 oder 2 stehen. ;)

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #65

        Statt in einen Datenpunkt was zu schreiben - kannst stdout natürlich auch direkt auf 1 oder 2 überprüfen und irgendwas programmieren. ;) - zum Beispiel einen Eintrag in das iobroker-Log schreiben oder was Du willst. ;)

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @Kusi Genau . so überprüft dass das Script auch.

          so nun brauchen wir wahrscheinlich Hilfe ;) - aber im Grunde sieht es nun so aus.

          Du führst vom iobroker aus:

          exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });
          

          Statt 'Datenpunkte.0.Dienststatus' gibst halt einen Datenpunkt ein, den Du unter 0_userdata.0 selbst angelegt hast.

          Dann sollte im iobroker nach ausführen in dem Datenpunkt 1 oder 2 stehen. ;)

          K Offline
          K Offline
          Kusi
          schrieb am zuletzt editiert von Kusi
          #66

          @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

          exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });

          Hier fehlen doch noch ein paar Gänsefüsschen?
          Ich habe diese eingefügt, ein Fehler wird nicht angezeigt, aber der Datenpunkt wird nicht gefüllt.

          exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l', function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); }");
          

          Wozu ist denn die function mit error, stdout und stderr?

          mickymM 1 Antwort Letzte Antwort
          0
          • K Kusi

            @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

            exec(ssh admin@192.168.1.10 ps -ef | grep plex | wc -l, function (error, stdout, stderr) { setState('Datenpunkte.0.Dienststatus',stdout); });

            Hier fehlen doch noch ein paar Gänsefüsschen?
            Ich habe diese eingefügt, ein Fehler wird nicht angezeigt, aber der Datenpunkt wird nicht gefüllt.

            exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l', function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); }");
            

            Wozu ist denn die function mit error, stdout und stderr?

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #67

            @Kusi

            exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); });
            

            Probiere es mal so - unter javascript soll man glaub keine Datenpunkte anlegen - aber egal - geht schon.

            Ich hab die Gänsefüsschen mal korrigiert.

            ggf. auch noch so, wenn das oben nicht funktioniert.

            exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l'", function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); });
            

            Diese Funktion ist eine sogenannte Callback Funktion, die aufgerufen wird, nachdem der Befehl auf dem Zielsystem ausgeführt wurde. Das Linuxsystem kennt grundsätzlich in jeder Shell 3 Ausgabekanäle.

            error = meist nur eine Fehlernr. oder 0 wenn alles OK
            stdout = die Standardausgabe, die Du sonst auf dem Bildschirm siehst - also 1 oder 2 in Deinem Fall
            stderr = Fehlerkanal mit Fehler in Textform

            Also liefert unser Befehl, den Du auf der Kommandozeile ausgeführt hast 1 oder 2 und füllt die Variable stdout. Diese wird mit setState dann geschrieben.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            K 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @Kusi

              exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); });
              

              Probiere es mal so - unter javascript soll man glaub keine Datenpunkte anlegen - aber egal - geht schon.

              Ich hab die Gänsefüsschen mal korrigiert.

              ggf. auch noch so, wenn das oben nicht funktioniert.

              exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l'", function (error, stdout, stderr) { setState(javascript.0.Eigene_Datenpunkte.Plex_Dienst,stdout); });
              

              Diese Funktion ist eine sogenannte Callback Funktion, die aufgerufen wird, nachdem der Befehl auf dem Zielsystem ausgeführt wurde. Das Linuxsystem kennt grundsätzlich in jeder Shell 3 Ausgabekanäle.

              error = meist nur eine Fehlernr. oder 0 wenn alles OK
              stdout = die Standardausgabe, die Du sonst auf dem Bildschirm siehst - also 1 oder 2 in Deinem Fall
              stderr = Fehlerkanal mit Fehler in Textform

              Also liefert unser Befehl, den Du auf der Kommandozeile ausgeführt hast 1 oder 2 und füllt die Variable stdout. Diese wird mit setState dann geschrieben.

              K Offline
              K Offline
              Kusi
              schrieb am zuletzt editiert von
              #68

              @mickym Bei beiden Codes erscheint "compile failed".

              mickymM 1 Antwort Letzte Antwort
              0
              • K Kusi

                @mickym Bei beiden Codes erscheint "compile failed".

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #69

                @Kusi

                exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                

                oder so

                exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l'", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                K 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @Kusi

                  exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                  

                  oder so

                  exec ("ssh admin@192.168.1.10 'ps -ef | grep plex | wc -l'", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                  
                  K Offline
                  K Offline
                  Kusi
                  schrieb am zuletzt editiert von
                  #70

                  @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

                  exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                  

                  Damit funktioniert es einwandfrei.
                  0 = Dienst gestoppt
                  1 = Dienst wird gestartet
                  2 = Dienst läuft

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • K Kusi

                    @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

                    exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',stdout); });
                    

                    Damit funktioniert es einwandfrei.
                    0 = Dienst gestoppt
                    1 = Dienst wird gestartet
                    2 = Dienst läuft

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #71

                    @Kusi Na Glückwunsch - dann habe ich ja meine Schuldigkeit getan. ;)

                    und sorry - wie gesagt ich bin da auch unsicher und taste mich halt heran. ;)

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    K 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @Kusi Na Glückwunsch - dann habe ich ja meine Schuldigkeit getan. ;)

                      und sorry - wie gesagt ich bin da auch unsicher und taste mich halt heran. ;)

                      K Offline
                      K Offline
                      Kusi
                      schrieb am zuletzt editiert von Kusi
                      #72

                      @mickym Auf diese Art und Weise kann also von anderen Gerät im Netzwerk dessen Status usw. abgefragt werden? Zum Beispiel freie Speichergrösse von Festplatten, usw.?

                      Sehr spannend diese Sache, jetzt müsste man nur noch alle Einzelheiten verstehen.
                      Danke dir vielmals für deine Hilfe!!! Dürfte ich dich wieder mal anschreiben per PN wenn ich eine Frage habe?

                      Du hast mir super geholfen, danke vielmals!
                      Ich würde mich auch daran tasten, wenn ich alles verstehen würde...

                      Im Log erscheinen jetzt haufenweise Warnmeldungen...


                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at Pipe.<anonymous> (net.js:674:12)
                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.EventEmitter.emit (domain.js:483:12)
                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.emit (events.js:315:20)
                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.<anonymous> (internal/child_process.js:443:11)
                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at maybeClose (internal/child_process.js:1021:16)
                      javascript.0 2020-09-07 23:40:00.275 warn (6635) at ChildProcess.EventEmitter.emit (domain.js:483:12)
                      javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.emit (events.js:315:20)
                      javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.exithandler (child_process.js:294:7)
                      javascript.0 2020-09-07 23:40:00.274 warn (6635) at script.js.Raspberry_Pi.Plex_starten_stoppen:15:99
                      javascript.0 2020-09-07 23:40:00.274 warn (6635) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20)
                      javascript.0 2020-09-07 23:40:00.272 warn (6635) You are assigning a string to the state "javascript.0.Eigene_Datenpunkte.Plex_Dienst" which expects a number. Please fix your code to use a number or change the state type to string. This warn

                      mickymM 2 Antworten Letzte Antwort
                      0
                      • K Kusi

                        @mickym Auf diese Art und Weise kann also von anderen Gerät im Netzwerk dessen Status usw. abgefragt werden? Zum Beispiel freie Speichergrösse von Festplatten, usw.?

                        Sehr spannend diese Sache, jetzt müsste man nur noch alle Einzelheiten verstehen.
                        Danke dir vielmals für deine Hilfe!!! Dürfte ich dich wieder mal anschreiben per PN wenn ich eine Frage habe?

                        Du hast mir super geholfen, danke vielmals!
                        Ich würde mich auch daran tasten, wenn ich alles verstehen würde...

                        Im Log erscheinen jetzt haufenweise Warnmeldungen...


                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at Pipe.<anonymous> (net.js:674:12)
                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.EventEmitter.emit (domain.js:483:12)
                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.emit (events.js:315:20)
                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.<anonymous> (internal/child_process.js:443:11)
                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at maybeClose (internal/child_process.js:1021:16)
                        javascript.0 2020-09-07 23:40:00.275 warn (6635) at ChildProcess.EventEmitter.emit (domain.js:483:12)
                        javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.emit (events.js:315:20)
                        javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.exithandler (child_process.js:294:7)
                        javascript.0 2020-09-07 23:40:00.274 warn (6635) at script.js.Raspberry_Pi.Plex_starten_stoppen:15:99
                        javascript.0 2020-09-07 23:40:00.274 warn (6635) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20)
                        javascript.0 2020-09-07 23:40:00.272 warn (6635) You are assigning a string to the state "javascript.0.Eigene_Datenpunkte.Plex_Dienst" which expects a number. Please fix your code to use a number or change the state type to string. This warn

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #73

                        @Kusi Klar gerne - Du kannst zwar auch mit PN schreiben - aber ein eigener Thread ist besser - da man im PN System Code - Screenshots etc. nicht so richtig posten kann. Und auch wenn ich mich hier vielleicht dumm anstelle und mich wie gesagt herantaste, da ich kein JAVA Mensch bin sondern meine Logik mit Node-RED mache.

                        Du kannst ja die Warnmeldungen posten - aber da werde ich wahrscheinlich nicht helfen können.

                        Na den letzten schon:

                        javascript.0 2020-09-07 23:40:00.272 warn (6635) You are assigning a string to the state "javascript.0.Eigene_Datenpunkte.Plex_Dienst" which expects a number. Please fix your code to use a number or change the state type to string. This warn
                        

                        Mach mal den von Dir erstellten Datenpunkt zum Typ Zeichenkette anstelle von Zahl.

                        Bei den anderen Warnungen - wie gesagt müssen hier die Java-Gurus ran. Vielleicht kann @paul53 helfen - der ist hier glaub ich bei Javascript Fragen der Guru.

                        Vielleicht darf man keine Pipes | nutzen - dann kann man den Befehl ggf. in eine sh- Datei stecken, aber wie gesagt ich kenne mich mit den Warnungen bei javascript nicht aus. Ansonsten nutze auch NodeRED - da ist das einfacher. ;)

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        K 1 Antwort Letzte Antwort
                        0
                        • K Kusi

                          @mickym Auf diese Art und Weise kann also von anderen Gerät im Netzwerk dessen Status usw. abgefragt werden? Zum Beispiel freie Speichergrösse von Festplatten, usw.?

                          Sehr spannend diese Sache, jetzt müsste man nur noch alle Einzelheiten verstehen.
                          Danke dir vielmals für deine Hilfe!!! Dürfte ich dich wieder mal anschreiben per PN wenn ich eine Frage habe?

                          Du hast mir super geholfen, danke vielmals!
                          Ich würde mich auch daran tasten, wenn ich alles verstehen würde...

                          Im Log erscheinen jetzt haufenweise Warnmeldungen...


                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at Pipe.<anonymous> (net.js:674:12)
                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.EventEmitter.emit (domain.js:483:12)
                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.emit (events.js:315:20)
                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at Socket.<anonymous> (internal/child_process.js:443:11)
                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at maybeClose (internal/child_process.js:1021:16)
                          javascript.0 2020-09-07 23:40:00.275 warn (6635) at ChildProcess.EventEmitter.emit (domain.js:483:12)
                          javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.emit (events.js:315:20)
                          javascript.0 2020-09-07 23:40:00.274 warn (6635) at ChildProcess.exithandler (child_process.js:294:7)
                          javascript.0 2020-09-07 23:40:00.274 warn (6635) at script.js.Raspberry_Pi.Plex_starten_stoppen:15:99
                          javascript.0 2020-09-07 23:40:00.274 warn (6635) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20)
                          javascript.0 2020-09-07 23:40:00.272 warn (6635) You are assigning a string to the state "javascript.0.Eigene_Datenpunkte.Plex_Dienst" which expects a number. Please fix your code to use a number or change the state type to string. This warn

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von
                          #74

                          @Kusi said in Einen PI3 durch ioBroker herunterfahren?:

                          mickym Auf diese Art und Weise kann also von anderen Gerät im Netzwerk dessen Status usw. abgefragt werden? Zum Beispiel freie Speichergrösse von Festplatten, usw.?

                          Grundsätzlich ja - aber da gibt es sicher auch Adapter die sowas machen. Ich habe da aber auch noch Probleme und nutze im Moment noch Funktionen von FHEM bei der Analyse von entfernten Linux Systemen

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @Kusi Klar gerne - Du kannst zwar auch mit PN schreiben - aber ein eigener Thread ist besser - da man im PN System Code - Screenshots etc. nicht so richtig posten kann. Und auch wenn ich mich hier vielleicht dumm anstelle und mich wie gesagt herantaste, da ich kein JAVA Mensch bin sondern meine Logik mit Node-RED mache.

                            Du kannst ja die Warnmeldungen posten - aber da werde ich wahrscheinlich nicht helfen können.

                            Na den letzten schon:

                            javascript.0 2020-09-07 23:40:00.272 warn (6635) You are assigning a string to the state "javascript.0.Eigene_Datenpunkte.Plex_Dienst" which expects a number. Please fix your code to use a number or change the state type to string. This warn
                            

                            Mach mal den von Dir erstellten Datenpunkt zum Typ Zeichenkette anstelle von Zahl.

                            Bei den anderen Warnungen - wie gesagt müssen hier die Java-Gurus ran. Vielleicht kann @paul53 helfen - der ist hier glaub ich bei Javascript Fragen der Guru.

                            Vielleicht darf man keine Pipes | nutzen - dann kann man den Befehl ggf. in eine sh- Datei stecken, aber wie gesagt ich kenne mich mit den Warnungen bei javascript nicht aus. Ansonsten nutze auch NodeRED - da ist das einfacher. ;)

                            K Offline
                            K Offline
                            Kusi
                            schrieb am zuletzt editiert von
                            #75

                            @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

                            Mach mal den von Dir erstellten Datenpunkt zum Typ Zeichenkette anstelle von Zahl.

                            Warnmeldungen sind alle weg.

                            Vielleicht kannst du mir noch bei einer anderen Meldung helfen...
                            Es hat immer funktioniert und seit ein paar Wochen bekomme ich folgende Info:
                            (6635) script.js.Test.test_Kopieren: undefined

                            var Uhrzeit, letzte_aenderung, Test;
                            
                            schedule("*/5 * * * *", function () {
                              if ((function () {var v = getDateObject(getState("deconz.0.Sensors.10.lastupdated").lc); return v.getHours() * 60 + v.getMinutes();})() < (function () {var v = new Date(); return v.getHours() * 60 + v.getMinutes();})() - 300) {
                                letzte_aenderung = 'Aquara: letzte Änderung war  ' + String(getState("deconz.0.Sensors.10.lastupdated").lc);
                              }
                              console.log(letzte_aenderung);
                            });
                            

                            b17daf3e-e117-4f58-b509-80ce16d10ae5-image.png

                            Hier geht es darum, wenn die letzte Änderung länger als 300 Minuten her ist, dann erscheint ein Debug. Dieser ist aber Undefined, siehe oben.

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • K Kusi

                              @mickym sagte in Einen PI3 durch ioBroker herunterfahren?:

                              Mach mal den von Dir erstellten Datenpunkt zum Typ Zeichenkette anstelle von Zahl.

                              Warnmeldungen sind alle weg.

                              Vielleicht kannst du mir noch bei einer anderen Meldung helfen...
                              Es hat immer funktioniert und seit ein paar Wochen bekomme ich folgende Info:
                              (6635) script.js.Test.test_Kopieren: undefined

                              var Uhrzeit, letzte_aenderung, Test;
                              
                              schedule("*/5 * * * *", function () {
                                if ((function () {var v = getDateObject(getState("deconz.0.Sensors.10.lastupdated").lc); return v.getHours() * 60 + v.getMinutes();})() < (function () {var v = new Date(); return v.getHours() * 60 + v.getMinutes();})() - 300) {
                                  letzte_aenderung = 'Aquara: letzte Änderung war  ' + String(getState("deconz.0.Sensors.10.lastupdated").lc);
                                }
                                console.log(letzte_aenderung);
                              });
                              

                              b17daf3e-e117-4f58-b509-80ce16d10ae5-image.png

                              Hier geht es darum, wenn die letzte Änderung länger als 300 Minuten her ist, dann erscheint ein Debug. Dieser ist aber Undefined, siehe oben.

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von mickym
                              #76

                              @Kusi Oh je - Du machst mich ja nun doch noch zum Java Mensch.

                              Aber ich sag es mal so:

                              In dem Fall, ist die letzte_aenderung ja NUR dann definiert, wenn die if Funktion WAHR ist, anderenfalls ist die Variable deshalb nicht definiert = undefined. ;)

                              Insofern würde ich einfach am Anfang die Variable initialisieren!

                              letzte_aenderung="Keine Änderung seit mehr als 300 Minuten";
                              

                              also so:

                               var Uhrzeit, letzte_aenderung, Test;
                              letzte_aenderung="Keine Änderung seit mehr als 300 Minuten";
                               
                               schedule("*/5 * * * *", function () {
                               if ((function () {var v = getDateObject(getState("deconz.0.Sensors.10.lastupdated").lc); return v.getHours() * 60 + v.getMinutes();})() < (function () {var v = new Date(); return v.getHours() * 60 + v.getMinutes();})() - 300) {
                                   letzte_aenderung = 'Aquara: letzte Änderung war  ' + String(getState("deconz.0.Sensors.10.lastupdated").lc);
                               }
                                 console.log(letzte_aenderung);
                               });
                              

                              alternativ kannst natürlich auch einen ELSE Zweig definieren- Ich weiß aber nicht wie das im Blockly heißt - sonst oder anderenfalls.

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              K 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @Kusi Oh je - Du machst mich ja nun doch noch zum Java Mensch.

                                Aber ich sag es mal so:

                                In dem Fall, ist die letzte_aenderung ja NUR dann definiert, wenn die if Funktion WAHR ist, anderenfalls ist die Variable deshalb nicht definiert = undefined. ;)

                                Insofern würde ich einfach am Anfang die Variable initialisieren!

                                letzte_aenderung="Keine Änderung seit mehr als 300 Minuten";
                                

                                also so:

                                 var Uhrzeit, letzte_aenderung, Test;
                                letzte_aenderung="Keine Änderung seit mehr als 300 Minuten";
                                 
                                 schedule("*/5 * * * *", function () {
                                 if ((function () {var v = getDateObject(getState("deconz.0.Sensors.10.lastupdated").lc); return v.getHours() * 60 + v.getMinutes();})() < (function () {var v = new Date(); return v.getHours() * 60 + v.getMinutes();})() - 300) {
                                     letzte_aenderung = 'Aquara: letzte Änderung war  ' + String(getState("deconz.0.Sensors.10.lastupdated").lc);
                                 }
                                   console.log(letzte_aenderung);
                                 });
                                

                                alternativ kannst natürlich auch einen ELSE Zweig definieren- Ich weiß aber nicht wie das im Blockly heißt - sonst oder anderenfalls.

                                K Offline
                                K Offline
                                Kusi
                                schrieb am zuletzt editiert von Kusi
                                #77

                                @mickym Oder den Debug Output nur machen, falls die Variable definiert ist, so wäre es ja auch geplant gewesen... So funktioniert es nämlich einwandfrei. Ich will dies dann später in eine schöne Nachricht einfügen, damit ich sehe wenn ggfs. die Batterie so schwach ist, dass der Sensor gar keine Änderung mehr senden kann.

                                0655019b-2b44-4357-8c1c-ec42de766649-image.png

                                Weist du zufällig wie man bei einem Datenpunkt einstellen kann, dass anstelle der Zahl z.B. bei
                                0 = Dienst ausgeschaltet
                                1 = Dienst wird gestartet
                                2 = Dienst eingeschaltet

                                angezeigt wird? Ich bin der Meinung dies mal irgendwo gelesen zu haben, dass man dies direkt im Datenpunkt ändern kann...
                                Natürlich könnte ich dies ganz simpel mit einem Blockly machen, aber dann müsste ich die Zahl entweder in eine Variable schreiben, oder ich hätte 2 Datenpunkte.

                                mickymM 2 Antworten Letzte Antwort
                                0
                                • K Kusi

                                  @mickym Oder den Debug Output nur machen, falls die Variable definiert ist, so wäre es ja auch geplant gewesen... So funktioniert es nämlich einwandfrei. Ich will dies dann später in eine schöne Nachricht einfügen, damit ich sehe wenn ggfs. die Batterie so schwach ist, dass der Sensor gar keine Änderung mehr senden kann.

                                  0655019b-2b44-4357-8c1c-ec42de766649-image.png

                                  Weist du zufällig wie man bei einem Datenpunkt einstellen kann, dass anstelle der Zahl z.B. bei
                                  0 = Dienst ausgeschaltet
                                  1 = Dienst wird gestartet
                                  2 = Dienst eingeschaltet

                                  angezeigt wird? Ich bin der Meinung dies mal irgendwo gelesen zu haben, dass man dies direkt im Datenpunkt ändern kann...
                                  Natürlich könnte ich dies ganz simpel mit einem Blockly machen, aber dann müsste ich die Zahl entweder in eine Variable schreiben, oder ich hätte 2 Datenpunkte.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #78

                                  @Kusi Genau - so geht es natürlich auch. So kann es ja nie vorkommen, dass Du auf eine nicht initialisierte Variable zugreift.

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  1 Antwort Letzte Antwort
                                  0
                                  • K Kusi

                                    @mickym Oder den Debug Output nur machen, falls die Variable definiert ist, so wäre es ja auch geplant gewesen... So funktioniert es nämlich einwandfrei. Ich will dies dann später in eine schöne Nachricht einfügen, damit ich sehe wenn ggfs. die Batterie so schwach ist, dass der Sensor gar keine Änderung mehr senden kann.

                                    0655019b-2b44-4357-8c1c-ec42de766649-image.png

                                    Weist du zufällig wie man bei einem Datenpunkt einstellen kann, dass anstelle der Zahl z.B. bei
                                    0 = Dienst ausgeschaltet
                                    1 = Dienst wird gestartet
                                    2 = Dienst eingeschaltet

                                    angezeigt wird? Ich bin der Meinung dies mal irgendwo gelesen zu haben, dass man dies direkt im Datenpunkt ändern kann...
                                    Natürlich könnte ich dies ganz simpel mit einem Blockly machen, aber dann müsste ich die Zahl entweder in eine Variable schreiben, oder ich hätte 2 Datenpunkte.

                                    mickymM Online
                                    mickymM Online
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von mickym
                                    #79

                                    @Kusi Das musst Du meines Wissens in vis selbst machen. Du kannst meines Wissens diese internen Bindings verwenden.

                                    Dann kann man anscheinend - musst aber bissi mit spielen wohl mit Arrays arbeiten:

                                    array(element1,element2[,element3,element4]) - returns the element of index. e.g.: {id.ack;array(ack is false,ack is true)}

                                    Das heißt Du definierst die 3 Zustände ähnlich und durch die Zahlen 0,1,2 greifst Du darauf zu.

                                    Also interne Bindung:

                                    {javascript.0.Eigene_Datenpunkte.Plex_Dienst;array('Dienst ausgeschaltet','Dienst wird gestartet','Dienst eingeschaltet')}

                                    aber da musst probieren. Da gibts aber wirklich Leute die da mehr Erfahrung haben ;)

                                    Ich hab das mal hier mit der Anzeige und rechnen hier ausprobiert - da musst halt mal bissi spielen. ;) Sieht man übrigens nur in Runtime - als nicht im Entwurf-Modus.

                                    Eventuell musst Du den stdout doch in Zahl umwandeln und den Datenpunkt auch.

                                    Dann würde der Befehl halt so lauten:

                                    exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',Number(stdout)); });
                                    

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    K 1 Antwort Letzte Antwort
                                    0
                                    • mickymM mickym

                                      @Kusi Das musst Du meines Wissens in vis selbst machen. Du kannst meines Wissens diese internen Bindings verwenden.

                                      Dann kann man anscheinend - musst aber bissi mit spielen wohl mit Arrays arbeiten:

                                      array(element1,element2[,element3,element4]) - returns the element of index. e.g.: {id.ack;array(ack is false,ack is true)}

                                      Das heißt Du definierst die 3 Zustände ähnlich und durch die Zahlen 0,1,2 greifst Du darauf zu.

                                      Also interne Bindung:

                                      {javascript.0.Eigene_Datenpunkte.Plex_Dienst;array('Dienst ausgeschaltet','Dienst wird gestartet','Dienst eingeschaltet')}

                                      aber da musst probieren. Da gibts aber wirklich Leute die da mehr Erfahrung haben ;)

                                      Ich hab das mal hier mit der Anzeige und rechnen hier ausprobiert - da musst halt mal bissi spielen. ;) Sieht man übrigens nur in Runtime - als nicht im Entwurf-Modus.

                                      Eventuell musst Du den stdout doch in Zahl umwandeln und den Datenpunkt auch.

                                      Dann würde der Befehl halt so lauten:

                                      exec ("ssh admin@192.168.1.10 ps -ef | grep plex | wc -l", function (error, stdout, stderr) { setState('javascript.0.Eigene_Datenpunkte.Plex_Dienst',Number(stdout)); });
                                      
                                      K Offline
                                      K Offline
                                      Kusi
                                      schrieb am zuletzt editiert von
                                      #80

                                      @mickym Danke. Mit einem HTML-Widget habe ich schon diverse solche Anzeigen erstellt. Ich bin aber der Meinung dass mna bereits den Wert eines Objekts so anpassen kann, dass z.B. anstelle "true" der Wert "ein" angezeigt wird.

                                      Vielleicht finde ich morgen was und werde es dich wissen lassen.

                                      Wünsche dir eine Gute Nacht und vielen Dank nochmals.

                                      mickymM 1 Antwort Letzte Antwort
                                      0
                                      • K Kusi

                                        @mickym Danke. Mit einem HTML-Widget habe ich schon diverse solche Anzeigen erstellt. Ich bin aber der Meinung dass mna bereits den Wert eines Objekts so anpassen kann, dass z.B. anstelle "true" der Wert "ein" angezeigt wird.

                                        Vielleicht finde ich morgen was und werde es dich wissen lassen.

                                        Wünsche dir eine Gute Nacht und vielen Dank nochmals.

                                        mickymM Online
                                        mickymM Online
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #81

                                        @Kusi Dann meinst vielleicht die Umwandlung mit Alias oder es geht auch im vis direkt.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        K 1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @Kusi Dann meinst vielleicht die Umwandlung mit Alias oder es geht auch im vis direkt.

                                          K Offline
                                          K Offline
                                          Kusi
                                          schrieb am zuletzt editiert von Kusi
                                          #82

                                          @mickym Alias ist meinerswissens etwas anderes (Adapter).
                                          Ich möchte bereits dass der Wert anders benannt wird, und nicht erst auf der vis.

                                          mickymM 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          946

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe