Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Licht anschalten, wenn PC aus ist

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Licht anschalten, wenn PC aus ist

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      smarthome2020 @smarthome2020 last edited by smarthome2020

      @smarthome2020 Auch als .bat besteht das Problem.
      Der PC fährt nicht herunter, dafür wird der Browser zugespamt mit neuen Tabs. Kann nicht einsehen, was in den Tabs ausgeführt wird.

      Edit: Es geht, wenn die Datei als Admin ausgeführt wird.

      F 1 Reply Last reply Reply Quote 0
      • F
        frankyboy73 @smarthome2020 last edited by

        @smarthome2020
        Hi, habs jetzt mit Windows 10 und Chrom probiert, klappt problemlos. Ich bekomme im Browser nur eine Rückmeldung "Power Off" das geschaltet wurde.
        Aus1.JPG
        Was passiert denn wenn du deinen http Befehl den du verwendest direkt im Browser eingibst?

        S 1 Reply Last reply Reply Quote 0
        • S
          smarthome2020 @frankyboy73 last edited by smarthome2020

          @frankyboy73 Es klappt nun. Muss die .bat nur als Admin ausführen.
          Weißt du, ob man mit dieser Methode beim ioBroker einen Datenpunkt steuern kann?

          Ich habe nämlich folgendes Problem. Meine Gosund sendet alle 10 Sek die "Wattzahl" an der Dose zum ioBroker. Dieser schaltet bei <10Watt die Dose ab. Wenn ich den PC ungünstig anschalte, dann geht die Steckdose sofort wieder aus und der PC fährt nicht hoch. Wollte die Dose nun über einen Datenpunkt abschalten.

          z.B. so:

          1. Befehl in die .bat einbinden, der den Datenpunkt "PC_heruntergefahren" auf "true" setzt
          2. Blockly-Skript erstellen, dass über 20 Sekunden prüfen sollte, ob der Status weiter "true" ist und falls ja, die Steckdose abschaltet. Das ganze muss aber getriggert werden, damit es überhaupt aktiv wird.
            --> ansonsten bleibt die Dose dauerhaft aus, weil der Datenpunkt ja nur auf "false" gesetzt werden kann, wenn ich zB bei Aktivität der Gosund-Dose den Datenpunkt ändere.
          F 1 Reply Last reply Reply Quote 0
          • F
            frankyboy73 @smarthome2020 last edited by

            @smarthome2020
            Musste ich bei mir jetzt nicht als Admin. aber ich meine das kann man in der Verknüpfung einstellen, das die Zieldatei immer als Admin ausgeführt wird.
            Ja das sollte auch gehen, irgendwie mit der IP Adresse und der Objekt ID, müsste ich jetzt aber erst mal die Suche benutzen, habe ich noch nie gemacht.
            Dazu musst du aber auch wissen wann dein PC runtergefahren ist, nicht das du die Dose zu früh ausschaltest. Das mit den kleiner 10 Watt kannst du sonst aber auch mit deinem Script verzögern und erst ausschalten wenn die Dose länger unter 10 Watt ist, z.B 30 Sekunden. Oder du nutzt Ping oder so zur abfrage ob der PC aus ist, und schaltest dann die Dose aus.

            S 1 Reply Last reply Reply Quote 0
            • S
              smarthome2020 @frankyboy73 last edited by

              @frankyboy73 Das Blockly muss aber ja wissen, wann es aktiv werden soll.... Also wann die 20 Sekunden geprüft werden sollen. Also ich brauche einen Trigger, ab wann es die 20 Sekunden prüft.

              C F 3 Replies Last reply Reply Quote 0
              • C
                CruziX @smarthome2020 last edited by

                @smarthome2020 Du kannst über den simple-api Adapter Datenpunkte über http setzen

                1 Reply Last reply Reply Quote 0
                • C
                  CruziX @smarthome2020 last edited by

                  @smarthome2020 sagte in Licht anschalten, wenn PC aus ist:

                  @frankyboy73 Hast du dann noch ne Idee, wie man die CMD oder BAT Datei mit Alexa ansteuern kann? Das wäre dann noch der Luxus, der greifen soll, wenn ich ohne am PC zu sitzen, den Kasten runterfahren kann.

                  Schau dir mal das hier an, ich glaube damit gehts:
                  https://forum.iobroker.net/topic/31485/test-adapter-windows-control-v0-1-x-github

                  S 1 Reply Last reply Reply Quote 0
                  • F
                    frankyboy73 @smarthome2020 last edited by

                    @smarthome2020
                    Dein Trigger ist die Wattzahl, wenn die geänder wurde.
                    Dann ne Falls Abfrage ob unter 10 Watt, dann steuere mit Timout 30 Sek
                    Sonst Falls ob größer 10 Watt steuere Timout Stop

                    1 Reply Last reply Reply Quote 0
                    • F
                      frankyboy73 @smarthome2020 last edited by

                      @smarthome2020
                      So ungefähr
                      Aus2.JPG

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        smarthome2020 @frankyboy73 last edited by

                        @frankyboy73 Das führt aber doch dazu, dass die Dose auch ausgeht nach 30 Sekunden, wenn der PC gerade gestartet ist. Man hat ja die Verzögerungen von Tasmota drin. So in etwa hatte ich das auch mal vor 2 Wochen. Resultat war, dass PC anlief und prompt wieder aus war, weil noch die alte Wattzahl vorhanden war. Und hier wird ja einfach bei niedriger Wattzahl die Dose nach 30 Sekunden abgeschaltet. Ich bräuchte meiner Logik nach eine 20 Sekündige Überprüfung der Wattzahl, ehe er abschaltet. Oder verstehe ich das falsch ^^

                        F 1 Reply Last reply Reply Quote 0
                        • S
                          smarthome2020 @CruziX last edited by

                          @CruziX Ich bin mir bei solchen Geschichten nie so sicher, was ich da für Hintertüren am PC öffne. Da mir für viele Dinge einfach das nötige Verständnis fehlt, kann ich auch nicht die Gefahr abschätzen. Daher lasse ich das lieber.

                          C 1 Reply Last reply Reply Quote 0
                          • F
                            frankyboy73 @smarthome2020 last edited by

                            @smarthome2020
                            In meinem Beispiel wird ja durch den Timeout erst nach 30 Sekunden abgeschaltet, geht die Leistung in dieser Zeit aber über 10 Watt, wird der Timeout gestoppt und nicht ausgeschaltet.
                            Hier noch mal ne Änderung, damit nur Ausgeschaltet wird wenn nicht aus ist, sonst hast du alle 10 Sekunden ne Auschaltbefehl wenn der PC aus ist.
                            Aus3.JPG

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              smarthome2020 @frankyboy73 last edited by smarthome2020

                              @frankyboy73 Super, danke dir.
                              Ok, dann hab ich das ganze falsch verstanden. Ich brauch ein Handbuch für das Erstellen von Blocklys. Hab schon einige Sachen so hinbekommen, bei anderen Befehlen weiß ich aber zB gar nicht, was ich damit machen könnte.

                              F 2 Replies Last reply Reply Quote 0
                              • F
                                frankyboy73 @smarthome2020 last edited by frankyboy73

                                @smarthome2020
                                Das braucht seine Zeit, bis man weiß was man da alles mit machen kann, aber das kommt, einfach mal testen, man kann ja nichts kaputt machen.
                                Habe da noch mal ne Änderung, da ja alle 10 Sekunden die Wattzahl übermittelt wird, könnte der Timout mehrmals gestartet sein, deshalb stoppe ich ihn beim ausschalten, sonst könnten mehrere Ausbefehle im 10 Sekunden Abstand hintereinander kommen.
                                Aus4.JPG
                                Edit: Ich hoffe das klappt so, ich nutzte Blocky selber gar nicht mehr für meine Steuerung. Vielleicht hat ja noch jemand ne Idee wie man das besser umsetzten kann.

                                1 Reply Last reply Reply Quote 0
                                • C
                                  CruziX @smarthome2020 last edited by

                                  @smarthome2020 sagte in Licht anschalten, wenn PC aus ist:

                                  @CruziX Ich bin mir bei solchen Geschichten nie so sicher, was ich da für Hintertüren am PC öffne. Da mir für viele Dinge einfach das nötige Verständnis fehlt, kann ich auch nicht die Gefahr abschätzen. Daher lasse ich das lieber.

                                  Diese "Hintertür" öffnest du wenn überhaupt nur für dein Netzwerk, wenn da wer unerwünschtes drin bist, hast du eh verloren 😛
                                  Außerdem können damit nur von dir erstelle Befehle ausgeführt werden, oder eben so standard sachen wie herunterfahren, neustarten.

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    frankyboy73 @smarthome2020 last edited by

                                    @smarthome2020
                                    Ich weiß ja nicht was du schon so alles gelesen und geschaut hast. Bei Youtube gibts Elzershark, der hat mal 2 oder 3 Videos "Blocky Grundlagen" gemacht, ist sehr interessant, auch die anderen Videos von ihm sind sehr nützlich.

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      CruziX last edited by

                                      Hier mal meine Version, wobei ich das in JS habe, ich lasse über Alexa und den Windows Control Adapter den Computer runterfahren:

                                      //********************************************************* */
                                      //                  Computerlogik
                                      //********************************************************* */
                                      let idComputerVerbrauch= 'alias.0.Yannick.Schreibtisch.Computer.Verbrauch';
                                      let idComputerFlag = '0_userdata.0.Datenpunkte.Funktion.Computer'; 
                                      
                                      let idRunterfahren = 'alexa2.0.Echo-Devices.G2A0RF048375090X.Routines.b416cb53-2ee7-440b-8ef8-f03ae1c5ec0b';
                                      let idRunterfahren2 = 'alexa2.0.Echo-Devices.G2A0RF048375090X.Routines.32e19033-8db1-4ab0-8849-13a72a4451ff';
                                      let flagSchlafen = '0_userdata.0.Datenpunkte.Status.Schlafen';
                                      let idComputerStrom = 'alias.0.Yannick.Schreibtisch.Computer.An';
                                      let bCheckConsumption = false;
                                      
                                      var toVebrauchGering;
                                      var toVebrauchGeringAktiv = false;
                                      
                                      function checkConsumption(){
                                      if(toVebrauchGeringAktiv && !Check())
                                         return;
                                         function powerOffPc(){
                                             if (Check()) {
                                                 setState(idComputerStrom, false);
                                                 toVebrauchGeringAktiv = false;
                                                 bCheckConsumption = false;
                                             }
                                         }
                                       powerOffPc();
                                      
                                       toVebrauchGeringAktiv = true;
                                       toVebrauchGering = setTimeout(function () {
                                         powerOffPc();
                                       }, SekInMs(20));
                                      }
                                      
                                      on({id: idComputerVerbrauch, change: "ne"}, function (obj) {
                                       // Wenn die Steckdose an ist und weniger als 3 Watt zieht
                                       if(bCheckConsumption)
                                         checkConsumption();
                                      });
                                      
                                      on({id: idComputerStrom, change: "ne"}, function (obj) {
                                       SteuereComputerGeraete(obj.state.val);
                                      });
                                      
                                      
                                      on({id: idComputerFlag, change: "ne"}, function (obj) {
                                       if(obj.state.val)
                                         setState(idComputerStrom,true);
                                      });
                                      
                                      function Check()
                                      {
                                         return Get(idComputerStrom) &&  Get(idComputerVerbrauch) < 3;
                                      }
                                      
                                      
                                      function sendShutdown(){
                                         if(Get('windows-control.0.MickyPC._connection'))
                                             setState('windows-control.0.MickyPC.shutdown',true);
                                         else
                                             log('sendShutdown: Konnte nicht ausgeführt werden, da keine Verbindung besteht','warn');
                                      }
                                      
                                      on({id: new RegExp(/*idRunterfahren+ "|" + idRunterfahren2 + "|" + flagSchlafen + "|" + */idComputerFlag), change: "any"}, function (obj) {
                                       var value = obj.state.val;
                                       if(!value && obj.id == idComputerFlag){
                                           // Nutze nun Windows Control adapter
                                           sendShutdown();
                                           bCheckConsumption = true;
                                           checkConsumption();
                                       }
                                      });
                                      

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        frankyboy73 @CruziX last edited by frankyboy73

                                        @CruziX
                                        Windows Control Adapter hört sich interessant an. Das muss ich mir mal anschauen. Auch die Sache das man ne Warnmeldung erhält, falls das Runterfahren wegen ner gestörten Verbindung nicht klappt, finde ich gut. Kann man auch bestimmt per Telegramm usw. weiterleiten.
                                        Edit: Ich hatte diesen Post nie aufgerufen, weil ich dachte es geht da um ne Fenstersteuerung oder so.🙄
                                        Danke für den Hinweis.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          smarthome2020 @frankyboy73 last edited by

                                          Also man kann den Befehl in der .bat erweitern und auch Datenpunkte abändern.
                                          Arbeite nun mit dem weiter oben angeführten Datenpunkt, den ich mir angelegt habe.

                                          Start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "http://192.168.188.53/cm?cmnd=Power On"
                                          Start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "http://192.168.188.43:8087/set/info.0.Handys_Tablets_weiteres.Computer_Steckdose.PC_heruntergefahren?value=true"
                                          shutdown -s -t 5 -f
                                          

                                          Läuft soweit alles wie gewünscht. Ich muss die Tage nochmal die Version von @Feuersturm ausprobieren. Die wäre noch einen Tick eleganter ^^

                                          C 1 Reply Last reply Reply Quote 0
                                          • C
                                            CruziX @smarthome2020 last edited by

                                            @smarthome2020 sagte in Licht anschalten, wenn PC aus ist:

                                            Also man kann den Befehl in der .bat erweitern und auch Datenpunkte abändern.
                                            Arbeite nun mit dem weiter oben angeführten Datenpunkt, den ich mir angelegt habe.

                                            Start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "http://192.168.188.53/cm?cmnd=Power On"
                                            Start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "http://192.168.188.43:8087/set/info.0.Handys_Tablets_weiteres.Computer_Steckdose.PC_heruntergefahren?value=true"
                                            shutdown -s -t 5 -f
                                            

                                            Läuft soweit alles wie gewünscht. Ich muss die Tage nochmal die Version von @Feuersturm ausprobieren. Die wäre noch einen Tick eleganter ^^

                                            Was hast du denn da für einen Datenpunkt?
                                            Legst du dir eigene unter Info an?

                                            S 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            441
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            40
                                            1355
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo