Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Windows Steuerung

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Windows Steuerung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
windows
178 Beiträge 36 Kommentatoren 47.5k Aufrufe 40 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.
  • MicM Mic

    Hier ein komfortables Script für GetAdmin

    Ich habe ein Script geschrieben, das automatisch Datenpunkte anlegt für alle verfügbaren Commands. Zusätzlich gibt es einen Datenpunkt "sendKey", mit dem eben die möglichen Keys, also Tastatureingaben, übergeben werden können.
    Außerdem können eigene Commands eingetragen werden, die man in der GetAdmin-Software in der Tabelle eingetragen hat (unten im Screenshot-Beispiel "m_hibernate" und "m_sleep".

    Pro Windows-Rechner werden automatisch separat Datenpunkte angelegt, einfach einzustellen im Script.
    getadmin.png

    Link zum Script auf Github.

    Viel Spaß damit.

    O Offline
    O Offline
    ozboss
    schrieb am zuletzt editiert von
    #106

    @Mic vielen Dank für das Script, funktioniert soweit ganz gut.
    Leider klappt das wechseln von den Monitoren bei mir nicht.
    Es passt nichts wenn ich auf monitor1 oder monitor2 klick.
    Die Windows+P Kombination funktioniert, die anderen Buttons funktionieren auch, also sollte das doch eigentlich auch funktionieren, oder muss ich noch was einstellen?

    1 Antwort Letzte Antwort
    0
    • MicM Mic

      Hier ein komfortables Script für GetAdmin

      Ich habe ein Script geschrieben, das automatisch Datenpunkte anlegt für alle verfügbaren Commands. Zusätzlich gibt es einen Datenpunkt "sendKey", mit dem eben die möglichen Keys, also Tastatureingaben, übergeben werden können.
      Außerdem können eigene Commands eingetragen werden, die man in der GetAdmin-Software in der Tabelle eingetragen hat (unten im Screenshot-Beispiel "m_hibernate" und "m_sleep".

      Pro Windows-Rechner werden automatisch separat Datenpunkte angelegt, einfach einzustellen im Script.
      getadmin.png

      Link zum Script auf Github.

      Viel Spaß damit.

      C Offline
      C Offline
      ChrisXY
      schrieb am zuletzt editiert von
      #107

      @Mic said in Windows Steuerung:

      Hier ein komfortables Script für GetAdmin

      Ich habe ein Script geschrieben, das automatisch Datenpunkte anlegt für alle verfügbaren Commands. Zusätzlich gibt es einen Datenpunkt "sendKey", mit dem eben die möglichen Keys, also Tastatureingaben, übergeben werden können.
      Außerdem können eigene Commands eingetragen werden, die man in der GetAdmin-Software in der Tabelle eingetragen hat (unten im Screenshot-Beispiel "m_hibernate" und "m_sleep".

      Pro Windows-Rechner werden automatisch separat Datenpunkte angelegt, einfach einzustellen im Script.
      getadmin.png

      Link zum Script auf Github.

      Viel Spaß damit.

      Cool kann man darüber auch Verknüpfungen(programme) starten? Also das ich 2 WebApps ( chrome) vom Desktop umschalten kann?

      1 Antwort Letzte Antwort
      0
      • Q Offline
        Q Offline
        Qlink
        schrieb am zuletzt editiert von
        #108

        Hi Leute,

        ich habe ab und zu das seltsame Verhalten, dass der Bildschirm bei mir ein paar mal kurz hintereinander ein und ausgeschaltet wird. Ich vermute, dass das mit meiner Skript Routine zusammen hängt.
        Auch das Display ausschalten nach Timerablauf ist nicht ideal, da es auch dann ausgeschaltet wird wenn es schon aus ist ...

        Ich würde mein Skript gerne etwas optimieren, damit es möglichst sauber läuft und möglichst wenige Befehle gesendet werden.

        Kann mir hierbei von euch jemand helfen, wie ich das meine gewünschte Funktionalität am stabilsten/besten hinbekomme ?

        Ich hätte schon mal damit begonnen mit zusätzlichen Variablen zu verhindern, dass alle 3min der "Display Aus" Befehl gesendet wird. (siehe gelbe Markierungen im Screenshot)
        Leider wird jetzt das Display gar nicht mehr ausgeschaltet ...

        Beste Grüße

        Hier mein Skript:
        8c645afa-3e02-47f9-bf55-455b0450a1a4-image.png

        <xml xmlns="http://www.w3.org/1999/xhtml">
          <variables>
            <variable type="undefined" id="timeout">timeout</variable>
            <variable type="undefined" id="timeout3">timeout3</variable>
            <variable type="" id="|_*{0${HXz=:V*1UsR5L">Display eingeschaltet</variable>
            <variable type="undefined" id="timeout2">timeout2</variable>
          </variables>
          <block type="on_ext" id="KOamhA3h#7jVsSiasf3B" x="316" y="-165">
            <mutation items="3"></mutation>
            <field name="CONDITION">true</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="MO1jRj(sZnSy]c+j![6@">
                <field name="oid">hm-rpc.1.MEQ0668834.3.MOTION</field>
              </shadow>
            </value>
            <value name="OID1">
              <shadow type="field_oid" id="{H?%FglCjoWlC/$O,=LP">
                <field name="oid">hm-rpc.1.JEQ0705028.10.PRESS_SHORT</field>
              </shadow>
            </value>
            <value name="OID2">
              <shadow type="field_oid" id="6!9_0]^eN`@*]Z~[:9TB">
                <field name="oid">hm-rpc.1.JEQ0705028.8.PRESS_SHORT</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="debug" id="s%Yj:SP)+=[udiDf1B,Z">
                <field name="Severity">log</field>
                <value name="TEXT">
                  <shadow type="text" id="/NKJn:F=^xFn6nmIa1-A">
                    <field name="TEXT">display ein weil bewegung, kaminfeuer oder aquarium gestartet</field>
                  </shadow>
                </value>
                <next>
                  <block type="timeouts_cleartimeout" id="EpH)VfW=oAcd5*^uHKCZ">
                    <field name="NAME">timeout</field>
                    <next>
                      <block type="comment" id="2VeRrii4tAW;|bmuwUK2">
                        <field name="COMMENT">display ein</field>
                        <next>
                          <block type="request" id="JLVUL--3T9lUAqN9qqQl">
                            <mutation with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG"></field>
                            <value name="URL">
                              <shadow type="text" id="VNl0gHOqQHpDm8ZXJ=Sg">
                                <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="variables_set" id="K!Tz!WhA$#`*d-2{Inn;">
                                <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="AbnHFG$xz{Urj5-;@,iJ">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="O?x,/,:+]oej1wcLAtqx">
                                    <mutation delay_input="false"></mutation>
                                    <field name="OID">javascript.0.GetAdmin.chkchrome</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="text" id="hd^u[biP3h+(}s^c6grC">
                                        <field name="TEXT">chrome</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id=":3l_=pY@f40AsEx#%hOU">
                                        <mutation delay_input="true"></mutation>
                                        <field name="OID">javascript.0.GetAdmin.chkvlc</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">7</field>
                                        <field name="UNIT">sec</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="text" id="YA..c=u4Qsj=S7p|?P(w">
                                            <field name="TEXT">vlc</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="control" id="K^1D9Z(:Os~Z6^,,~8Pc">
                                            <mutation delay_input="true"></mutation>
                                            <field name="OID">javascript.0.GetAdmin.chkkodi</field>
                                            <field name="WITH_DELAY">TRUE</field>
                                            <field name="DELAY_MS">12</field>
                                            <field name="UNIT">sec</field>
                                            <field name="CLEAR_RUNNING">FALSE</field>
                                            <value name="VALUE">
                                              <block type="text" id="C!1B9_.zG9O!f*/Xzv]H">
                                                <field name="TEXT">kodi</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="control" id="Mg.|CtLKJ+[9[1e4r/ck">
                                                <mutation delay_input="true"></mutation>
                                                <field name="OID">javascript.0.GetAdmin.chkaqua</field>
                                                <field name="WITH_DELAY">TRUE</field>
                                                <field name="DELAY_MS">17</field>
                                                <field name="UNIT">sec</field>
                                                <field name="CLEAR_RUNNING">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="text" id="P$U4ov:Ed?$jP.xi8PDp">
                                                    <field name="TEXT">MarineAquarium3</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="timeouts_settimeout" id="6,jN507#+/{a#jnb-pJ%">
                                                    <field name="NAME">timeout2</field>
                                                    <field name="DELAY">19</field>
                                                    <field name="UNIT">sec</field>
                                                    <statement name="STATEMENT">
                                                      <block type="controls_if" id="H0?_fy.C291ShiJNJvQ.">
                                                        <mutation elseif="1"></mutation>
                                                        <value name="IF0">
                                                          <block type="logic_operation" id="3-ebaMHh6/:f5q7]CFdV" inline="false">
                                                            <field name="OP">AND</field>
                                                            <value name="A">
                                                              <block type="logic_operation" id="PZ%TZ_d%NF]9Ng%p^px%" inline="false">
                                                                <field name="OP">AND</field>
                                                                <value name="A">
                                                                  <block type="logic_operation" id="4{(tn{8AZ.s_a_NDDppG" inline="false">
                                                                    <field name="OP">AND</field>
                                                                    <value name="A">
                                                                      <block type="logic_compare" id=",3r7dmA*Ezdd4x=[1fKA">
                                                                        <field name="OP">EQ</field>
                                                                        <value name="A">
                                                                          <block type="get_value" id="Em6?6H:HNW4D^n7flwES">
                                                                            <field name="ATTR">val</field>
                                                                            <field name="OID">javascript.0.GetAdmin.chromeprocess</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="B">
                                                                          <block type="text" id=";K#zBBQ$p3Wen1K(-,Yo">
                                                                            <field name="TEXT">&lt;html&gt;chrome.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="logic_compare" id="}PeMNsQ|,Lc21e)i35L0">
                                                                        <field name="OP">EQ</field>
                                                                        <value name="A">
                                                                          <block type="get_value" id="dT$Z9U(,dY%ju@kl#]=^">
                                                                            <field name="ATTR">val</field>
                                                                            <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="B">
                                                                          <block type="text" id="[qyTznnH7XyhagiQrz!H">
                                                                            <field name="TEXT">&lt;html&gt;vlc.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="logic_compare" id="-jJ2dh@N6hq%QNVzh[P^">
                                                                    <field name="OP">EQ</field>
                                                                    <value name="A">
                                                                      <block type="get_value" id="@u82.WnTZL?mrV@fSbvP">
                                                                        <field name="ATTR">val</field>
                                                                        <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="text" id="tll_%aw%H6qz^pS5x@]*">
                                                                        <field name="TEXT">&lt;html&gt;kodi.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="logic_compare" id="MPW:)3.xx(,I4/O`Cj,~">
                                                                <field name="OP">EQ</field>
                                                                <value name="A">
                                                                  <block type="get_value" id="7wPv04a{+wDk.O*OeZ#)">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="text" id="^GuaK+nB,z9,@fK4fpHq">
                                                                    <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO0">
                                                          <block type="request" id="[sax3cW1,j7I;Nx59(%~">
                                                            <mutation with_statement="false"></mutation>
                                                            <field name="WITH_STATEMENT">FALSE</field>
                                                            <field name="LOG"></field>
                                                            <value name="URL">
                                                              <shadow type="text" id="Ig?5mM,b=(h=Y5;omfw1">
                                                                <field name="TEXT">http://192.168.30.21:8585/?cmd=vismain</field>
                                                              </shadow>
                                                            </value>
                                                          </block>
                                                        </statement>
                                                        <value name="IF1">
                                                          <block type="logic_operation" id="s}cLILgYPzX(K3LqkxbR" inline="false">
                                                            <field name="OP">OR</field>
                                                            <value name="A">
                                                              <block type="logic_operation" id="@JL@mh)c{27nSMp)J!3a" inline="false">
                                                                <field name="OP">OR</field>
                                                                <value name="A">
                                                                  <block type="logic_compare" id="n8O6fkv=|`P|;5a=@WXM">
                                                                    <field name="OP">EQ</field>
                                                                    <value name="A">
                                                                      <block type="get_value" id="O=^ZZUiSU~VA~=mciZKP">
                                                                        <field name="ATTR">val</field>
                                                                        <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="text" id="4cv!1D?_VnW#JfV@F:/:">
                                                                        <field name="TEXT">&lt;html&gt;vlc.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="logic_compare" id="-(|rRc1RQPvj`4L78}hI">
                                                                    <field name="OP">EQ</field>
                                                                    <value name="A">
                                                                      <block type="get_value" id="i^Jrj(75B*OQ)ZnxHMN[">
                                                                        <field name="ATTR">val</field>
                                                                        <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <block type="text" id="MhXUnsB(NI6l=K4~J=Fo">
                                                                        <field name="TEXT">&lt;html&gt;kodi.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <value name="B">
                                                              <block type="logic_compare" id="m@#,saBWwaHv#dmpe{tm">
                                                                <field name="OP">EQ</field>
                                                                <value name="A">
                                                                  <block type="get_value" id="1Z~4[x|#L_y:PNQFt|`-">
                                                                    <field name="ATTR">val</field>
                                                                    <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                                                  </block>
                                                                </value>
                                                                <value name="B">
                                                                  <block type="text" id="iF[9+r7F7I.JF`}/EpmP">
                                                                    <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                        <statement name="DO1">
                                                          <block type="request" id="`.rD0OnGyQcR)_s+W,,f">
                                                            <mutation with_statement="false"></mutation>
                                                            <field name="WITH_STATEMENT">FALSE</field>
                                                            <field name="LOG"></field>
                                                            <value name="URL">
                                                              <shadow type="text" id="^3+dT*U-soWSQb7$KBLW">
                                                                <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                                                              </shadow>
                                                            </value>
                                                          </block>
                                                        </statement>
                                                      </block>
                                                    </statement>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <next>
              <block type="schedule" id="V./@+knk=ZZd10].~C!p">
                <field name="SCHEDULE">*/3 * * * *</field>
                <statement name="STATEMENT">
                  <block type="controls_if" id="Cx71YE6eaL%s`,RUIsLF">
                    <mutation elseif="1"></mutation>
                    <value name="IF0">
                      <block type="logic_operation" id="P]:czyQ47+7I(N65V28C" inline="false">
                        <field name="OP">AND</field>
                        <value name="A">
                          <block type="logic_operation" id="==BPEns8du!{k2D{]YkV" inline="false">
                            <field name="OP">AND</field>
                            <value name="A">
                              <block type="logic_operation" id="~{$Sl%L).`zH+1:I(l{D" inline="false">
                                <field name="OP">AND</field>
                                <value name="A">
                                  <block type="logic_operation" id="ZN-^%R{MYGX4K{y!0r3%" inline="false">
                                    <field name="OP">AND</field>
                                    <value name="A">
                                      <block type="logic_compare" id="e2%-D0-B(*~9nmU4nsA|">
                                        <field name="OP">EQ</field>
                                        <value name="A">
                                          <block type="get_value" id="t2!H(X{,}P@RDpkE7+tF">
                                            <field name="ATTR">val</field>
                                            <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="logic_boolean" id="F%~[pOaq-fJ9~gjn4h_%">
                                            <field name="BOOL">FALSE</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_compare" id="ty_kiq6Bax`%GnyUYm)X">
                                        <field name="OP">EQ</field>
                                        <value name="A">
                                          <block type="get_value" id="#XwA})`7;d826qU_*Tex">
                                            <field name="ATTR">val</field>
                                            <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="h[rr^w[`*]Cv1~~b,g-q">
                                            <field name="TEXT">&lt;html&gt;vlc.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_operation" id="QCE83Z6@:BDNvm]f3}I!" inline="false">
                                    <field name="OP">AND</field>
                                    <value name="A">
                                      <block type="logic_compare" id="2n#E3/CaaDaY2E}NiCTt">
                                        <field name="OP">EQ</field>
                                        <value name="A">
                                          <block type="get_value" id="p$RwR.(@#Zw8XlZ:XEKw">
                                            <field name="ATTR">val</field>
                                            <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="logic_boolean" id="J{4p3~Zc-;U0J2hwE,oB">
                                            <field name="BOOL">FALSE</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_compare" id=",?NXz[H=Z@;xK.H;*;TS">
                                        <field name="OP">EQ</field>
                                        <value name="A">
                                          <block type="get_value" id="pe^vwb$u:#Kkjn=?^0(!">
                                            <field name="ATTR">val</field>
                                            <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="text" id="JLw9|,,sv0Ax^2!)v!K|">
                                            <field name="TEXT">&lt;html&gt;kodi.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_operation" id="a*lU)-Nyhc^vg*dxT`1{" inline="false">
                                <field name="OP">AND</field>
                                <value name="A">
                                  <block type="logic_compare" id="[yI}c9dvBT.E?eEWDf2Y">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="get_value" id="7h(?=V_]8/^9{OV5^V)K">
                                        <field name="ATTR">val</field>
                                        <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_boolean" id="XY^a1Mdbm[#(^vzQ/?yW">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_compare" id="(/c+(zY%:YX@{$nN}DkK">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="get_value" id="T)7F9$`z?+)J2H02_0_f">
                                        <field name="ATTR">val</field>
                                        <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="text" id=";9+PT8T)-kX({DbX4Ne@">
                                        <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id="x@LsFILs`/`Ea,lsPtEQ">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="variables_get" id=")%CeJW*BJ.#-upp0O;T9">
                                <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="Q#kaa]B=QX9%WR?/k_R}">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="timeouts_settimeout" id="C=CCI6}+^AF9u(!pO5XC">
                        <field name="NAME">timeout</field>
                        <field name="DELAY">2</field>
                        <field name="UNIT">min</field>
                        <statement name="STATEMENT">
                          <block type="debug" id="wdtN=8T2BiPO:)AN24T3">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                              <shadow type="text" id="VJ1{$]j`|bn+`P8^~h}U">
                                <field name="TEXT">display aus</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="NN5xKI@+_WLlukRR)bnk">
                                <mutation delay_input="false"></mutation>
                                <field name="OID">hm-rega.0.49077.ProgramExecute</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="xmQ.[tMZIUGCeoI?]G%+">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="sgbi$Px)`G4?jUFn8h{c">
                                    <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="B[N1kl{.L)jSOjIq=ui6">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </statement>
                    <value name="IF1">
                      <block type="logic_operation" id="g_`B[_H(Z?)1V(`N~5!B" inline="false">
                        <field name="OP">OR</field>
                        <value name="A">
                          <block type="logic_operation" id="Ztca7;%`dVE,SAH_Sc=4" inline="false">
                            <field name="OP">OR</field>
                            <value name="A">
                              <block type="logic_compare" id="G|4b5DKaZon10C@ug;KD">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="get_value" id="ARvFIYg~0dce~nGUVVMR">
                                    <field name="ATTR">val</field>
                                    <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="text" id="hTFVvrN;guTIk*/u#=3!">
                                    <field name="TEXT">&lt;html&gt;vlc.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_compare" id="f0qKgTRl!Crl5#%4JvV_">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="get_value" id="]b8gU-C/QeP3H6-D8g|Z">
                                    <field name="ATTR">val</field>
                                    <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="text" id="eyo5.g9;?QK:8`iGe5uF">
                                    <field name="TEXT">&lt;html&gt;kodi.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id="ohQzDM(XxYYr,3Cx2N;-">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="`r9,o=:^T`!}]qb[i$GE">
                                <field name="ATTR">val</field>
                                <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="text" id="lbVVmCiP0^on#~pa$=j`">
                                <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO1">
                      <block type="timeouts_settimeout" id="qGi9Tv[[_-[A`s9F[XU^">
                        <field name="NAME">timeout3</field>
                        <field name="DELAY">1</field>
                        <field name="UNIT">min</field>
                        <statement name="STATEMENT">
                          <block type="debug" id="MZ:GxlLL*cTFM6x3e#kY">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                              <shadow type="text" id="8X-TS@_35Z?a+dT#WW7q">
                                <field name="TEXT">display ein weil vlc,kodi oder aqua läuft</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="request" id="0iq%kH{y4#?HkGb5U#)q">
                                <mutation with_statement="false"></mutation>
                                <field name="WITH_STATEMENT">FALSE</field>
                                <field name="LOG"></field>
                                <value name="URL">
                                  <shadow type="text" id="fz#iF7G_]V7;waDGfT0n">
                                    <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="variables_set" id="|_qE5Fe6xXTsV(5p+8!y">
                                    <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="M=t@aMt/jwOJL:o4I.HR">
                                        <field name="BOOL">TRUE</field>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </xml>
        
        E 1 Antwort Letzte Antwort
        0
        • Q Qlink

          Hi Leute,

          ich habe ab und zu das seltsame Verhalten, dass der Bildschirm bei mir ein paar mal kurz hintereinander ein und ausgeschaltet wird. Ich vermute, dass das mit meiner Skript Routine zusammen hängt.
          Auch das Display ausschalten nach Timerablauf ist nicht ideal, da es auch dann ausgeschaltet wird wenn es schon aus ist ...

          Ich würde mein Skript gerne etwas optimieren, damit es möglichst sauber läuft und möglichst wenige Befehle gesendet werden.

          Kann mir hierbei von euch jemand helfen, wie ich das meine gewünschte Funktionalität am stabilsten/besten hinbekomme ?

          Ich hätte schon mal damit begonnen mit zusätzlichen Variablen zu verhindern, dass alle 3min der "Display Aus" Befehl gesendet wird. (siehe gelbe Markierungen im Screenshot)
          Leider wird jetzt das Display gar nicht mehr ausgeschaltet ...

          Beste Grüße

          Hier mein Skript:
          8c645afa-3e02-47f9-bf55-455b0450a1a4-image.png

          <xml xmlns="http://www.w3.org/1999/xhtml">
            <variables>
              <variable type="undefined" id="timeout">timeout</variable>
              <variable type="undefined" id="timeout3">timeout3</variable>
              <variable type="" id="|_*{0${HXz=:V*1UsR5L">Display eingeschaltet</variable>
              <variable type="undefined" id="timeout2">timeout2</variable>
            </variables>
            <block type="on_ext" id="KOamhA3h#7jVsSiasf3B" x="316" y="-165">
              <mutation items="3"></mutation>
              <field name="CONDITION">true</field>
              <field name="ACK_CONDITION"></field>
              <value name="OID0">
                <shadow type="field_oid" id="MO1jRj(sZnSy]c+j![6@">
                  <field name="oid">hm-rpc.1.MEQ0668834.3.MOTION</field>
                </shadow>
              </value>
              <value name="OID1">
                <shadow type="field_oid" id="{H?%FglCjoWlC/$O,=LP">
                  <field name="oid">hm-rpc.1.JEQ0705028.10.PRESS_SHORT</field>
                </shadow>
              </value>
              <value name="OID2">
                <shadow type="field_oid" id="6!9_0]^eN`@*]Z~[:9TB">
                  <field name="oid">hm-rpc.1.JEQ0705028.8.PRESS_SHORT</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="debug" id="s%Yj:SP)+=[udiDf1B,Z">
                  <field name="Severity">log</field>
                  <value name="TEXT">
                    <shadow type="text" id="/NKJn:F=^xFn6nmIa1-A">
                      <field name="TEXT">display ein weil bewegung, kaminfeuer oder aquarium gestartet</field>
                    </shadow>
                  </value>
                  <next>
                    <block type="timeouts_cleartimeout" id="EpH)VfW=oAcd5*^uHKCZ">
                      <field name="NAME">timeout</field>
                      <next>
                        <block type="comment" id="2VeRrii4tAW;|bmuwUK2">
                          <field name="COMMENT">display ein</field>
                          <next>
                            <block type="request" id="JLVUL--3T9lUAqN9qqQl">
                              <mutation with_statement="false"></mutation>
                              <field name="WITH_STATEMENT">FALSE</field>
                              <field name="LOG"></field>
                              <value name="URL">
                                <shadow type="text" id="VNl0gHOqQHpDm8ZXJ=Sg">
                                  <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="variables_set" id="K!Tz!WhA$#`*d-2{Inn;">
                                  <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="AbnHFG$xz{Urj5-;@,iJ">
                                      <field name="BOOL">TRUE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="O?x,/,:+]oej1wcLAtqx">
                                      <mutation delay_input="false"></mutation>
                                      <field name="OID">javascript.0.GetAdmin.chkchrome</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="text" id="hd^u[biP3h+(}s^c6grC">
                                          <field name="TEXT">chrome</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id=":3l_=pY@f40AsEx#%hOU">
                                          <mutation delay_input="true"></mutation>
                                          <field name="OID">javascript.0.GetAdmin.chkvlc</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">7</field>
                                          <field name="UNIT">sec</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="text" id="YA..c=u4Qsj=S7p|?P(w">
                                              <field name="TEXT">vlc</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="control" id="K^1D9Z(:Os~Z6^,,~8Pc">
                                              <mutation delay_input="true"></mutation>
                                              <field name="OID">javascript.0.GetAdmin.chkkodi</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">12</field>
                                              <field name="UNIT">sec</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE">
                                                <block type="text" id="C!1B9_.zG9O!f*/Xzv]H">
                                                  <field name="TEXT">kodi</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="control" id="Mg.|CtLKJ+[9[1e4r/ck">
                                                  <mutation delay_input="true"></mutation>
                                                  <field name="OID">javascript.0.GetAdmin.chkaqua</field>
                                                  <field name="WITH_DELAY">TRUE</field>
                                                  <field name="DELAY_MS">17</field>
                                                  <field name="UNIT">sec</field>
                                                  <field name="CLEAR_RUNNING">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="text" id="P$U4ov:Ed?$jP.xi8PDp">
                                                      <field name="TEXT">MarineAquarium3</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="timeouts_settimeout" id="6,jN507#+/{a#jnb-pJ%">
                                                      <field name="NAME">timeout2</field>
                                                      <field name="DELAY">19</field>
                                                      <field name="UNIT">sec</field>
                                                      <statement name="STATEMENT">
                                                        <block type="controls_if" id="H0?_fy.C291ShiJNJvQ.">
                                                          <mutation elseif="1"></mutation>
                                                          <value name="IF0">
                                                            <block type="logic_operation" id="3-ebaMHh6/:f5q7]CFdV" inline="false">
                                                              <field name="OP">AND</field>
                                                              <value name="A">
                                                                <block type="logic_operation" id="PZ%TZ_d%NF]9Ng%p^px%" inline="false">
                                                                  <field name="OP">AND</field>
                                                                  <value name="A">
                                                                    <block type="logic_operation" id="4{(tn{8AZ.s_a_NDDppG" inline="false">
                                                                      <field name="OP">AND</field>
                                                                      <value name="A">
                                                                        <block type="logic_compare" id=",3r7dmA*Ezdd4x=[1fKA">
                                                                          <field name="OP">EQ</field>
                                                                          <value name="A">
                                                                            <block type="get_value" id="Em6?6H:HNW4D^n7flwES">
                                                                              <field name="ATTR">val</field>
                                                                              <field name="OID">javascript.0.GetAdmin.chromeprocess</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="B">
                                                                            <block type="text" id=";K#zBBQ$p3Wen1K(-,Yo">
                                                                              <field name="TEXT">&lt;html&gt;chrome.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="logic_compare" id="}PeMNsQ|,Lc21e)i35L0">
                                                                          <field name="OP">EQ</field>
                                                                          <value name="A">
                                                                            <block type="get_value" id="dT$Z9U(,dY%ju@kl#]=^">
                                                                              <field name="ATTR">val</field>
                                                                              <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                                                            </block>
                                                                          </value>
                                                                          <value name="B">
                                                                            <block type="text" id="[qyTznnH7XyhagiQrz!H">
                                                                              <field name="TEXT">&lt;html&gt;vlc.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="logic_compare" id="-jJ2dh@N6hq%QNVzh[P^">
                                                                      <field name="OP">EQ</field>
                                                                      <value name="A">
                                                                        <block type="get_value" id="@u82.WnTZL?mrV@fSbvP">
                                                                          <field name="ATTR">val</field>
                                                                          <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="text" id="tll_%aw%H6qz^pS5x@]*">
                                                                          <field name="TEXT">&lt;html&gt;kodi.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <block type="logic_compare" id="MPW:)3.xx(,I4/O`Cj,~">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="get_value" id="7wPv04a{+wDk.O*OeZ#)">
                                                                      <field name="ATTR">val</field>
                                                                      <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="^GuaK+nB,z9,@fK4fpHq">
                                                                      <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <statement name="DO0">
                                                            <block type="request" id="[sax3cW1,j7I;Nx59(%~">
                                                              <mutation with_statement="false"></mutation>
                                                              <field name="WITH_STATEMENT">FALSE</field>
                                                              <field name="LOG"></field>
                                                              <value name="URL">
                                                                <shadow type="text" id="Ig?5mM,b=(h=Y5;omfw1">
                                                                  <field name="TEXT">http://192.168.30.21:8585/?cmd=vismain</field>
                                                                </shadow>
                                                              </value>
                                                            </block>
                                                          </statement>
                                                          <value name="IF1">
                                                            <block type="logic_operation" id="s}cLILgYPzX(K3LqkxbR" inline="false">
                                                              <field name="OP">OR</field>
                                                              <value name="A">
                                                                <block type="logic_operation" id="@JL@mh)c{27nSMp)J!3a" inline="false">
                                                                  <field name="OP">OR</field>
                                                                  <value name="A">
                                                                    <block type="logic_compare" id="n8O6fkv=|`P|;5a=@WXM">
                                                                      <field name="OP">EQ</field>
                                                                      <value name="A">
                                                                        <block type="get_value" id="O=^ZZUiSU~VA~=mciZKP">
                                                                          <field name="ATTR">val</field>
                                                                          <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="text" id="4cv!1D?_VnW#JfV@F:/:">
                                                                          <field name="TEXT">&lt;html&gt;vlc.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="logic_compare" id="-(|rRc1RQPvj`4L78}hI">
                                                                      <field name="OP">EQ</field>
                                                                      <value name="A">
                                                                        <block type="get_value" id="i^Jrj(75B*OQ)ZnxHMN[">
                                                                          <field name="ATTR">val</field>
                                                                          <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="text" id="MhXUnsB(NI6l=K4~J=Fo">
                                                                          <field name="TEXT">&lt;html&gt;kodi.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <block type="logic_compare" id="m@#,saBWwaHv#dmpe{tm">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="get_value" id="1Z~4[x|#L_y:PNQFt|`-">
                                                                      <field name="ATTR">val</field>
                                                                      <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="iF[9+r7F7I.JF`}/EpmP">
                                                                      <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <statement name="DO1">
                                                            <block type="request" id="`.rD0OnGyQcR)_s+W,,f">
                                                              <mutation with_statement="false"></mutation>
                                                              <field name="WITH_STATEMENT">FALSE</field>
                                                              <field name="LOG"></field>
                                                              <value name="URL">
                                                                <shadow type="text" id="^3+dT*U-soWSQb7$KBLW">
                                                                  <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                                                                </shadow>
                                                              </value>
                                                            </block>
                                                          </statement>
                                                        </block>
                                                      </statement>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="schedule" id="V./@+knk=ZZd10].~C!p">
                  <field name="SCHEDULE">*/3 * * * *</field>
                  <statement name="STATEMENT">
                    <block type="controls_if" id="Cx71YE6eaL%s`,RUIsLF">
                      <mutation elseif="1"></mutation>
                      <value name="IF0">
                        <block type="logic_operation" id="P]:czyQ47+7I(N65V28C" inline="false">
                          <field name="OP">AND</field>
                          <value name="A">
                            <block type="logic_operation" id="==BPEns8du!{k2D{]YkV" inline="false">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_operation" id="~{$Sl%L).`zH+1:I(l{D" inline="false">
                                  <field name="OP">AND</field>
                                  <value name="A">
                                    <block type="logic_operation" id="ZN-^%R{MYGX4K{y!0r3%" inline="false">
                                      <field name="OP">AND</field>
                                      <value name="A">
                                        <block type="logic_compare" id="e2%-D0-B(*~9nmU4nsA|">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="t2!H(X{,}P@RDpkE7+tF">
                                              <field name="ATTR">val</field>
                                              <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_boolean" id="F%~[pOaq-fJ9~gjn4h_%">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_compare" id="ty_kiq6Bax`%GnyUYm)X">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="#XwA})`7;d826qU_*Tex">
                                              <field name="ATTR">val</field>
                                              <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="text" id="h[rr^w[`*]Cv1~~b,g-q">
                                              <field name="TEXT">&lt;html&gt;vlc.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_operation" id="QCE83Z6@:BDNvm]f3}I!" inline="false">
                                      <field name="OP">AND</field>
                                      <value name="A">
                                        <block type="logic_compare" id="2n#E3/CaaDaY2E}NiCTt">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="p$RwR.(@#Zw8XlZ:XEKw">
                                              <field name="ATTR">val</field>
                                              <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="logic_boolean" id="J{4p3~Zc-;U0J2hwE,oB">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_compare" id=",?NXz[H=Z@;xK.H;*;TS">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="pe^vwb$u:#Kkjn=?^0(!">
                                              <field name="ATTR">val</field>
                                              <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="text" id="JLw9|,,sv0Ax^2!)v!K|">
                                              <field name="TEXT">&lt;html&gt;kodi.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_operation" id="a*lU)-Nyhc^vg*dxT`1{" inline="false">
                                  <field name="OP">AND</field>
                                  <value name="A">
                                    <block type="logic_compare" id="[yI}c9dvBT.E?eEWDf2Y">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="7h(?=V_]8/^9{OV5^V)K">
                                          <field name="ATTR">val</field>
                                          <field name="OID">hm-rpc.1.MEQ0668834.3.MOTION</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="logic_boolean" id="XY^a1Mdbm[#(^vzQ/?yW">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_compare" id="(/c+(zY%:YX@{$nN}DkK">
                                      <field name="OP">EQ</field>
                                      <value name="A">
                                        <block type="get_value" id="T)7F9$`z?+)J2H02_0_f">
                                          <field name="ATTR">val</field>
                                          <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="text" id=";9+PT8T)-kX({DbX4Ne@">
                                          <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Not running or was not found!&lt;p&gt;false&lt;/p&gt;&lt;/html&gt;</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="x@LsFILs`/`Ea,lsPtEQ">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="variables_get" id=")%CeJW*BJ.#-upp0O;T9">
                                  <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_boolean" id="Q#kaa]B=QX9%WR?/k_R}">
                                  <field name="BOOL">TRUE</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="timeouts_settimeout" id="C=CCI6}+^AF9u(!pO5XC">
                          <field name="NAME">timeout</field>
                          <field name="DELAY">2</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT">
                            <block type="debug" id="wdtN=8T2BiPO:)AN24T3">
                              <field name="Severity">log</field>
                              <value name="TEXT">
                                <shadow type="text" id="VJ1{$]j`|bn+`P8^~h}U">
                                  <field name="TEXT">display aus</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="control" id="NN5xKI@+_WLlukRR)bnk">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">hm-rega.0.49077.ProgramExecute</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="xmQ.[tMZIUGCeoI?]G%+">
                                      <field name="BOOL">TRUE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="sgbi$Px)`G4?jUFn8h{c">
                                      <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="B[N1kl{.L)jSOjIq=ui6">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </statement>
                      <value name="IF1">
                        <block type="logic_operation" id="g_`B[_H(Z?)1V(`N~5!B" inline="false">
                          <field name="OP">OR</field>
                          <value name="A">
                            <block type="logic_operation" id="Ztca7;%`dVE,SAH_Sc=4" inline="false">
                              <field name="OP">OR</field>
                              <value name="A">
                                <block type="logic_compare" id="G|4b5DKaZon10C@ug;KD">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="ARvFIYg~0dce~nGUVVMR">
                                      <field name="ATTR">val</field>
                                      <field name="OID">javascript.0.GetAdmin.vlcprocess</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="text" id="hTFVvrN;guTIk*/u#=3!">
                                      <field name="TEXT">&lt;html&gt;vlc.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="f0qKgTRl!Crl5#%4JvV_">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="]b8gU-C/QeP3H6-D8g|Z">
                                      <field name="ATTR">val</field>
                                      <field name="OID">javascript.0.GetAdmin.kodiprocess</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="text" id="eyo5.g9;?QK:8`iGe5uF">
                                      <field name="TEXT">&lt;html&gt;kodi.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_compare" id="ohQzDM(XxYYr,3Cx2N;-">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="get_value" id="`r9,o=:^T`!}]qb[i$GE">
                                  <field name="ATTR">val</field>
                                  <field name="OID">javascript.0.GetAdmin.aquaprocess</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="text" id="lbVVmCiP0^on#~pa$=j`">
                                  <field name="TEXT">&lt;html&gt;MarineAquarium3.exe Running!&lt;p&gt;true&lt;/p&gt;&lt;/html&gt;</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO1">
                        <block type="timeouts_settimeout" id="qGi9Tv[[_-[A`s9F[XU^">
                          <field name="NAME">timeout3</field>
                          <field name="DELAY">1</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT">
                            <block type="debug" id="MZ:GxlLL*cTFM6x3e#kY">
                              <field name="Severity">log</field>
                              <value name="TEXT">
                                <shadow type="text" id="8X-TS@_35Z?a+dT#WW7q">
                                  <field name="TEXT">display ein weil vlc,kodi oder aqua läuft</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="request" id="0iq%kH{y4#?HkGb5U#)q">
                                  <mutation with_statement="false"></mutation>
                                  <field name="WITH_STATEMENT">FALSE</field>
                                  <field name="LOG"></field>
                                  <value name="URL">
                                    <shadow type="text" id="fz#iF7G_]V7;waDGfT0n">
                                      <field name="TEXT">http://192.168.30.21:8585/?key=F15</field>
                                    </shadow>
                                  </value>
                                  <next>
                                    <block type="variables_set" id="|_qE5Fe6xXTsV(5p+8!y">
                                      <field name="VAR" id="|_*{0${HXz=:V*1UsR5L" variabletype="">Display eingeschaltet</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="M=t@aMt/jwOJL:o4I.HR">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </xml>
          
          E Offline
          E Offline
          el_malto
          schrieb am zuletzt editiert von
          #109

          @Qlink
          Das Skript macht für mich überhaupt keinen Sinn.
          Das Display endet ja immer mit an und Aquarium...
          Ist das dein komplettes Skript zum steuern des Displays oder nur ein Ausschnitt?

          1 Antwort Letzte Antwort
          0
          • Q Offline
            Q Offline
            Qlink
            schrieb am zuletzt editiert von
            #110

            @el_malto

            das ist das komplette Skript zum Steuern meines Displays und es funktioniert so ja grundsätzlich auch, aber eben noch nicht zu 100% stabil.

            Display aus ist dieser Part hier:

            d997daa2-426f-4ed3-8c23-7fe244b9e254-image.png

            In Worten:

            WENN "keine Bewegung" UND "vlc.exe läuft nicht"
            UND "keine Bewegung" UND "kodi.exe läuft nicht"
            UND "keine Bewegung" UND "marineaquarium3.exe läuft nicht"

            DANN

            schalte nach 2min das Display aus

            und der ganze Part wird alle 3min getriggert/überprüft...

            E 1 Antwort Letzte Antwort
            0
            • Q Qlink

              @el_malto

              das ist das komplette Skript zum Steuern meines Displays und es funktioniert so ja grundsätzlich auch, aber eben noch nicht zu 100% stabil.

              Display aus ist dieser Part hier:

              d997daa2-426f-4ed3-8c23-7fe244b9e254-image.png

              In Worten:

              WENN "keine Bewegung" UND "vlc.exe läuft nicht"
              UND "keine Bewegung" UND "kodi.exe läuft nicht"
              UND "keine Bewegung" UND "marineaquarium3.exe läuft nicht"

              DANN

              schalte nach 2min das Display aus

              und der ganze Part wird alle 3min getriggert/überprüft...

              E Offline
              E Offline
              el_malto
              schrieb am zuletzt editiert von
              #111

              @Qlink
              Ich kann das Skript schon lesen, musst es nicht in Worte fassen 😉

              Dein Skript macht am Anfang aber immer alles an. Also dein Chrome, VLC, Kodi und Aquarium. Von daher verstehe ich deine Abfragen in "timeout2". Da du vor dem "timeout2" immer alles an machst, wird in deinen "timeout2" immer das Display nochmal eingeschaltet. Das machst du aber auch schon vor dem "timeout2".

              Desweiteren ist deine 3 minütige Abfrage ja auch total sinnlos, da VLC, Kodi und Aquarium ja immer angeschaltet werden. Wenn du die Prozesse nie aus schaltest, wird dein Display auch nie aus gehen. Deswegen auch die Frage ob das dein ganzes Skript zur Steuerung ist, oder du irgendwie anders die Prozesse von VLC, Kodi und Aquarium beendest/startest usw.
              Wenn du die Prozesse nicht anderweitig aus schaltest, wird dein Display mit dem Skript so wie es da ist nie aus gehen.

              1 Antwort Letzte Antwort
              0
              • Q Offline
                Q Offline
                Qlink
                schrieb am zuletzt editiert von Qlink
                #112

                @el_malto

                das ist wohl etwas schwer rauszulesen.

                das Display soll so schnell wie möglich eingeschaltet werden, sobald eine Bewegung erkannt wurde oder per Displaytaster das Aquarium oder Kaminfeuer (vlc) gestartet wurde.

                chkchrome, chkvlc, chkkodi und chkaqua sind nur Prüfbefehle, welche checken ob auf dem NUC eines der 4 Programme läuft. Diese Befehle starten keine Programme.

                im ersten Teil des timeout2 Parts starte ich chrome mit vis, falls keines der 4 Programme läuft.

                im zweiten Teil des timeout2 Parts führe ich einen Tastendruck aus, falls vlc oder kodi oder marineaquarium läuft, damit das Display nicht ausgeschaltet wird.

                Sowohl Kodi, als auch VLC oder MarineAquarium können nur manuell per Taster gestartet und auch wieder beendet werden...

                E 1 Antwort Letzte Antwort
                0
                • Q Qlink

                  @el_malto

                  das ist wohl etwas schwer rauszulesen.

                  das Display soll so schnell wie möglich eingeschaltet werden, sobald eine Bewegung erkannt wurde oder per Displaytaster das Aquarium oder Kaminfeuer (vlc) gestartet wurde.

                  chkchrome, chkvlc, chkkodi und chkaqua sind nur Prüfbefehle, welche checken ob auf dem NUC eines der 4 Programme läuft. Diese Befehle starten keine Programme.

                  im ersten Teil des timeout2 Parts starte ich chrome mit vis, falls keines der 4 Programme läuft.

                  im zweiten Teil des timeout2 Parts führe ich einen Tastendruck aus, falls vlc oder kodi oder marineaquarium läuft, damit das Display nicht ausgeschaltet wird.

                  Sowohl Kodi, als auch VLC oder MarineAquarium können nur manuell per Taster gestartet und auch wieder beendet werden...

                  E Offline
                  E Offline
                  el_malto
                  schrieb am zuletzt editiert von el_malto
                  #113

                  @Qlink
                  Ah ok, dann hat mich das "steuere" ein bisschen auf dem Holzweg gebracht.

                  2 Sachen sind mir aufgefallen (sind aber nicht das Problem):

                  1. Warum willst du im "timeout2" das Display bei der "sonst falls" Prüfung noch mal einschalten? Du schaltest es doch schon ganz zu Anfang ein. Im "timeout2" musst du dann nur noch prüfen ob die Prozesse laufen. Wenn nicht schaltest du auf die Main VIS. Es macht ja kein Sinn falls ein Prozess läuft das Display noch mal einzuschalten, es ist ja schon längst an.

                  2. Bei den 3 Minuten Cron musst du nicht mit jedem Prozess den BWM mit überprüfen. Das sind alles UND Verknüpfungen. Das reicht wenn du den BMW nur ein mal mit prüfst.

                  Bezüglich des "ein, aus und wieder ein schaltens": Ich könnte mir vorstellen, dass es da Überlappungen von den timeouts gibt. Aber andererseits stoppst du ja den "timeout" ganz oben wieder. Der dürfte dann ja eigentlich nichts mehr ausführen.
                  Oder kann es sein, dass man timeouts nur im gleichen Trigger stoppen kann? Also das dein "stop timeout" ganz oben gar nicht deinen "timeout" im Cron stoppt und es dann zu Überlappungen von den Timeouts kommt?
                  EDIT: Hab das mal mit einem Testskript probiert. Ist egal in welchem Trigger der Timeout ist, der wird gestoppt.

                  1 Antwort Letzte Antwort
                  0
                  • Q Offline
                    Q Offline
                    Qlink
                    schrieb am zuletzt editiert von Qlink
                    #114
                    1. damit er, falls vlc, kodi oder marineaquarium läuft, das display nicht ausschaltet, sondern permanent an bleibt, so lange eines dieser Programme läuft... wenn ich im "sonst fall Teil" nicht bei jeder Schleife das Display einschalten würde, dann würde es doch durch die unteren Timer nach ein paar Minuten ausgeschaltet werden, oder habe ich hier einen Denkfehler ?

                    2. du meinst so:
                      465e2d59-d9f3-494e-ba21-7ab7d38f233e-image.png

                    was ich eben nicht verstehe ist das Thema mit der Variablen "Display eingeschaltet"... Warum schaltet er das Display gar nicht mehr aus, sobald ich die gelb markierten Variablen im Skript einbaue ...

                    E 1 Antwort Letzte Antwort
                    0
                    • Q Qlink
                      1. damit er, falls vlc, kodi oder marineaquarium läuft, das display nicht ausschaltet, sondern permanent an bleibt, so lange eines dieser Programme läuft... wenn ich im "sonst fall Teil" nicht bei jeder Schleife das Display einschalten würde, dann würde es doch durch die unteren Timer nach ein paar Minuten ausgeschaltet werden, oder habe ich hier einen Denkfehler ?

                      2. du meinst so:
                        465e2d59-d9f3-494e-ba21-7ab7d38f233e-image.png

                      was ich eben nicht verstehe ist das Thema mit der Variablen "Display eingeschaltet"... Warum schaltet er das Display gar nicht mehr aus, sobald ich die gelb markierten Variablen im Skript einbaue ...

                      E Offline
                      E Offline
                      el_malto
                      schrieb am zuletzt editiert von
                      #115

                      @Qlink sagte in Windows Steuerung:

                      1. damit er, falls vlc, kodi oder marineaquarium läuft, das display nicht ausschaltet, sondern permanent an bleibt, so lange eines dieser Programme läuft... wenn ich im "sonst fall Teil" nicht bei jeder Schleife das Display einschalten würde, dann würde es doch durch die unteren Timer nach ein paar Minuten ausgeschaltet werden, oder habe ich hier einen Denkfehler ?

                      Du hast da einen Denkfehler oder denkst zu kompliziert.
                      Wenn dein BWM auslöst oder Kamin oder Aquarium eingeschaltet wird, schaltest du das Display ein. Dann überprüfst du mit den „steuer“ Bausteine welche Prozesse laufen. Wenn nichts läuft schaltest du auf die Main VIS. Bis jetzt alles gut.
                      Jetzt willst du aber wenn ein Prozess läuft das Display einschalten. Das Display ist aber doch schon an. Es wird ja immer eingeschaltet wenn dein BWM auslöst oder Kamin oder Aquarium eingeschaltet wird und auch deine Überprüfung mit „steuere“ wird NUR ausgeführt wenn dein BWM auslöst oder Kamin oder Aquarium eingeschaltet wird und nicht zyklisch oder in einer Schleife.
                      Deine „Schleife“ ist ja erst unten mit deinem 3 minütigen Cron. Da guckst du in „sonst falls“ ob ein Prozess läuft und wenn ja willst das Display einschalten. Aber du aktualisierst die „process“ Datenpunkte doch vorher gar nicht mit den „steuer“ Befehlen. Es steht also das gleiche drin wie oben schon. Und das Display ist ja sowieso schon an. Es wird doch nur ausgeschaltet wenn die Prozesse nicht laufen.

                      Ich kann das irgendwie schlecht in Worte fassen. Hoffe du verstehst was ich meine.

                      1. du meinst so:
                        465e2d59-d9f3-494e-ba21-7ab7d38f233e-image.png

                      Ja gena, das reicht weil es alles UND Verknüpfungen sind.

                      was ich eben nicht verstehe ist das Thema mit der Variablen "Display eingeschaltet"... Warum schaltet er das Display gar nicht mehr aus, sobald ich die gelb markierten Variablen im Skript einbaue ...

                      Es muss dann wohl immer noch ein Prozess laufen...

                      1 Antwort Letzte Antwort
                      0
                      • BostilB Offline
                        BostilB Offline
                        Bostil
                        schrieb am zuletzt editiert von
                        #116

                        So richtig verstehen tue ich das System noch nicht, aber vllt. könnt ihr mir auf die Sprünge helfen:

                        • ich würde gerne in meiner VIS Buttons für z. B. Netflix, Skygo oder auch den Skizzenblock von Windows 10 anlegen, damit dieser über den dahinterliegenden Windows PC geöffnet und oberhalb der VIS eingeblendet werden
                        • ich vermutete, dass GetAdmin die richtige Lösung hierfür sein könnte
                        • daher habe ich das Script unter Common als JS angelegt und es läuft auch fehlerfrei
                        • GetAdmin ist auch rudimentär konfiguriert (links die IP von meinem Windows PC mit der VIS und Port 8585 (?) und rechts dann in Simple API die IP und auch Port meines io-Broker

                        Wie kann ich nun das Starten der Programme über die VIS-Oberfläche antriggern?

                        Unter Objekten im iobroker finde ich unter Javascript.0 >>> GetAdmin bloß die Objekte Host und Port als state.

                        Ihr merkt schon: Ich bin blutiger Anfänger und weiß nicht mehr weiter. Vielleicht kann von den Experten jemand helfen ?

                        DANKE euch!

                        MicM 1 Antwort Letzte Antwort
                        0
                        • BostilB Bostil

                          So richtig verstehen tue ich das System noch nicht, aber vllt. könnt ihr mir auf die Sprünge helfen:

                          • ich würde gerne in meiner VIS Buttons für z. B. Netflix, Skygo oder auch den Skizzenblock von Windows 10 anlegen, damit dieser über den dahinterliegenden Windows PC geöffnet und oberhalb der VIS eingeblendet werden
                          • ich vermutete, dass GetAdmin die richtige Lösung hierfür sein könnte
                          • daher habe ich das Script unter Common als JS angelegt und es läuft auch fehlerfrei
                          • GetAdmin ist auch rudimentär konfiguriert (links die IP von meinem Windows PC mit der VIS und Port 8585 (?) und rechts dann in Simple API die IP und auch Port meines io-Broker

                          Wie kann ich nun das Starten der Programme über die VIS-Oberfläche antriggern?

                          Unter Objekten im iobroker finde ich unter Javascript.0 >>> GetAdmin bloß die Objekte Host und Port als state.

                          Ihr merkt schon: Ich bin blutiger Anfänger und weiß nicht mehr weiter. Vielleicht kann von den Experten jemand helfen ?

                          DANKE euch!

                          MicM Offline
                          MicM Offline
                          Mic
                          Developer
                          schrieb am zuletzt editiert von
                          #117

                          @Bostil
                          Meinst du mein Script? Also https://github.com/Mic-M/iobroker.control-ms-windows/blob/master/control-ms-windows.js

                          BostilB 1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            BlackHawk3000
                            schrieb am zuletzt editiert von
                            #118

                            Servus,

                            durch einen netten User wurde ich auf diesen Thread/Script hingewiesen.
                            Mein Vorhaben konnte ich zum Teil auch schon umsetzten.
                            Bedeutet, ich möchte wenn es klingelt, dass der Url link zur Kamera aufgerufen wird. Das klappt auch schon wunderbar. Muss nur noch schauen, wie ich es mit User und Passwort auf die Reihe bekomme.

                            Gerne würde ich allerdings zwei Browserfenster (Übereinander, nebeneinander) offen haben, eins für die Kamera/Kameras und eins für eine Art Systemübersicht. Ist dies auch realisierbar?
                            So das bei verschiedenen Aktionen die unterschiedlichen Fenster angesprochen werden können?

                            Danke
                            Gruß
                            Blacky

                            MicM E 2 Antworten Letzte Antwort
                            0
                            • B BlackHawk3000

                              Servus,

                              durch einen netten User wurde ich auf diesen Thread/Script hingewiesen.
                              Mein Vorhaben konnte ich zum Teil auch schon umsetzten.
                              Bedeutet, ich möchte wenn es klingelt, dass der Url link zur Kamera aufgerufen wird. Das klappt auch schon wunderbar. Muss nur noch schauen, wie ich es mit User und Passwort auf die Reihe bekomme.

                              Gerne würde ich allerdings zwei Browserfenster (Übereinander, nebeneinander) offen haben, eins für die Kamera/Kameras und eins für eine Art Systemübersicht. Ist dies auch realisierbar?
                              So das bei verschiedenen Aktionen die unterschiedlichen Fenster angesprochen werden können?

                              Danke
                              Gruß
                              Blacky

                              MicM Offline
                              MicM Offline
                              Mic
                              Developer
                              schrieb am zuletzt editiert von
                              #119

                              @BlackHawk3000

                              Hi und Servus,

                              kannst du das denn über die Kommandozeile in Windows auch ausführen?
                              Im Prinzip kannst du nämlich alles, was du über die Command Line ausführst, auch über GetAdmin ausführen. Alles andere geht wohl nicht. D.h. du benötigst ggf. ein Zusatzprogramm, das per Kommandozeile anspechbar ist.

                              1 Antwort Letzte Antwort
                              1
                              • B BlackHawk3000

                                Servus,

                                durch einen netten User wurde ich auf diesen Thread/Script hingewiesen.
                                Mein Vorhaben konnte ich zum Teil auch schon umsetzten.
                                Bedeutet, ich möchte wenn es klingelt, dass der Url link zur Kamera aufgerufen wird. Das klappt auch schon wunderbar. Muss nur noch schauen, wie ich es mit User und Passwort auf die Reihe bekomme.

                                Gerne würde ich allerdings zwei Browserfenster (Übereinander, nebeneinander) offen haben, eins für die Kamera/Kameras und eins für eine Art Systemübersicht. Ist dies auch realisierbar?
                                So das bei verschiedenen Aktionen die unterschiedlichen Fenster angesprochen werden können?

                                Danke
                                Gruß
                                Blacky

                                E Offline
                                E Offline
                                el_malto
                                schrieb am zuletzt editiert von
                                #120

                                @BlackHawk3000
                                Einfach mal nach Windows Fenster Layout speichern googlen. Da gibt es mehrere Programme die die Größe und Position speichern und mittels Hotkey wiederherstellen können. Vielleicht hilft dir sowas ja.

                                1 Antwort Letzte Antwort
                                1
                                • MicM Mic

                                  @Bostil
                                  Meinst du mein Script? Also https://github.com/Mic-M/iobroker.control-ms-windows/blob/master/control-ms-windows.js

                                  BostilB Offline
                                  BostilB Offline
                                  Bostil
                                  schrieb am zuletzt editiert von
                                  #121

                                  @Mic Hallo Mic, vielleicht kannst du ja bei meinem Vorhaben helfen. Hast du eine Ahnung, wie ich über GetAdmin Programme auf dem Windows PC starte, wo ich den Browser für VIS betreibe ?

                                  Danke dir.

                                  1 Antwort Letzte Antwort
                                  0
                                  • BostilB Offline
                                    BostilB Offline
                                    Bostil
                                    schrieb am zuletzt editiert von Bostil
                                    #122

                                    Erhalte in dem Control-PC Script von @Mic folgende Fehlermeldung:

                                    15:08:28.895 error javascript.0 (2088) script.js.common.MSWindows compile failed: at script.js.common.MSWindows:49

                                    Update:
                                    Habe @mic Script übertragen und lediglich die IP des Rechners ergänzt. Letztlich würde ich gerne am Mini-PC wo auf einem Windows-PC die Verbindung zum iobroker auf einem Raspi4 hergestellt wird, direkt noch Programme neben der VIS (über Opera) starten können.

                                    Hat jemand ein ähnliches Problem ?

                                    /***************************************************************************************
                                     * Script to control Windows PCs
                                     * -------------------------------------------------------------------------------------
                                     * Send commands to Windows PCs for shutdown, hibernate, etc.
                                     * Source: https://forum.iobroker.net/topic/1570/windows-steuerung and https://blog.instalator.ru/archives/47
                                     * 
                                     * Aktuelle Version:    https://github.com/Mic-M/iobroker.control-ms-windows
                                     * Support:             https://forum.iobroker.net/topic/1570/windows-steuerung
                                     * ---------------------------
                                     * Change Log:
                                     *  0.1 Mic  - Initial Version
                                     * ---------------------------
                                     * Many thanks to Vladimir Vilisov for GetAdmin. Check out his website at
                                     * https://blog.instalator.ru/archives/47
                                     ***************************************************************************************/
                                    
                                    /*******************************************************************************
                                     * Zur Einrichtung von GetAdmin
                                     ******************************************************************************/
                                    /*
                                     * 1) Software "GetAdmin" (getestet Version 2.6) auf Zielrechner installieren.
                                     *    Link: https://blog.instalator.ru/archives/47
                                     * 2) In GetAdmin, ganz oben links unter "Server": 
                                     *     - IP: die IP-Adresse der ioBrokers eintragen
                                     *     - Port: Standard-Port 8585 so lassen
                                     * 3) In GetAdmin, oben unter "Options" Haken bei Minimize und Startup setzen, 
                                     *    damit sich GetAdmin bei jedem Rechnerstart startet und das minimiert.
                                     *    Dann mit "Save" bestätigen.
                                     * 4) Fertig
                                     * ------------------------------------------------------------------------------
                                     * Beispiele für individuelle Einträge in GetAdmin Command list:
                                     *     a) Ruhezustand: 
                                     *         - in Spalte 'Command' z.B. "m_hibernate" eintragen
                                     *         - in Spalte 'PATH or URL' eintragen: shutdown
                                     *         - in Spalte 'PARAMETERS' eintragen: -h
                                     *     b) Energie sparen:
                                     *         - in Spalte 'Command' z.B. "m_sleep" eintragen
                                     *         - in Spalte 'PATH or URL' eintragen: rundll32.exe
                                     *         - in Spalte 'PARAMETERS' eintragen: powrprof.dll,SetSuspendState
                                     */
                                    
                                    
                                    
                                    /*******************************************************************************
                                     * Konfiguration: Pfade
                                     ******************************************************************************/
                                    // Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden.
                                    // Kann man so bestehen lassen.
                                    const STATE_PATH = 'javascript.'+ instance + '.' + 'Control-PC';
                                    
                                    /*******************************************************************************
                                     * Konfiguration: Geräte
                                     ******************************************************************************/
                                    // Hier deine Geräte aufnehmen. Du kannst beliebig viele ergänzen.
                                    const CONFIG_DEVICES = [
                                        {
                                            name: 'Mini-PC',   // Für Datenpunkt und Ausgabe
                                            ip:   '192.168.178.13',
                                        },
                                        {
                                            name: 'Gästezimmer-PC',
                                            ip:   '10.10.0.102',
                                        },
                                    ];
                                    
                                    /*******************************************************************************
                                     * Konfiguration: Get Admin Commands
                                     ******************************************************************************/
                                    // Eigene Commands, die in Get Admin in der Command List eingetragen sind, Spalte "Command"
                                    // Bitte ohne Leerzeichen, Sonderzeichen, etc.
                                    // Falls keine eigenen Commands: GETADMIN_COMMANDS_OWN = [];
                                    const GETADMIN_COMMANDS_OWN = ['m_hibernate', 'm_sleep', '', ''];
                                    
                                    
                                    /*******************************************************************************
                                     * Konfiguration: Konsolen-Ausgaben
                                     ******************************************************************************/
                                    // Auf true setzen, wenn ein paar Infos dieses Scripts im Log ausgegeben werden dürfen.
                                    const LOG_INFO = true;
                                    
                                    // Auf true setzen, wenn zur Fehlersuche einige Meldungen ausgegeben werden sollen.
                                    // Ansonsten bitte auf false stellen.
                                    const LOG_DEBUG = false;
                                    
                                    
                                    
                                    /*************************************************************************************************************************
                                     * Ab hier nichts mehr ändern / Stop editing here!
                                     *************************************************************************************************************************/
                                    
                                    /********************************************************************************
                                     * Durch Get Admin unterstützte Commands
                                     ********************************************************************************/
                                    const GETADMIN_COMMANDS = ['process', 'shutdown', 'poweroff', 'reboot', 'forceifhung', 'logoff', 'monitor1', 'monitor2'];
                                    
                                    
                                    /********************************************************************************
                                     * init - This is executed on every script (re)start.
                                     ********************************************************************************/
                                    init();
                                    function init() {
                                        
                                        // Create our states, if not yet existing.
                                        createStates();
                                    
                                        // States should have been created, so continue
                                        setTimeout(function(){    
                                    
                                            // Subscribe to states
                                            doSubscriptions();
                                    
                                        }, 2000);
                                    
                                    }
                                    
                                    function doSubscriptions() {
                                    
                                        // Loop through the devices
                                        for (let lpConfDevice of CONFIG_DEVICES) {
                                    
                                            let name = lpConfDevice['name'];
                                            let statePath = STATE_PATH + '.' + name;
                                    
                                            /*****************
                                             * Loop through the commands to subscribe accordingly
                                             *****************/
                                            let allCommands = cleanArray([].concat(GETADMIN_COMMANDS, GETADMIN_COMMANDS_OWN)); // merge both into one array
                                            for (let lpCommand of allCommands) {
                                    
                                                on({id: statePath + '.' + lpCommand, change: 'any', val: true}, function(obj) {
                                    
                                                    // First: Get the device + command state portion of obj.id, as variable is not available within "on({id..."
                                                    let stateFull = obj.id // e.g. [javascript.0.Control-PC.PC-Maria.shutdown]
                                                    let stateDeviceAndCommand = stateFull.substring(STATE_PATH.length +1); // e.g. [PC-Maria.shutdown]
                                                    let stateDeviceAndCommandSplit = stateDeviceAndCommand.split('.');
                                                    let stateDevice = stateDeviceAndCommandSplit[0];    // e.g. [PC-Maria]
                                                    let stateCommand = stateDeviceAndCommandSplit[1];   // e.g. [shutdown]
                                    
                                                    // Next, get the ip
                                                    let ip = getConfigValuePerKey(CONFIG_DEVICES, 'name', stateDevice, 'ip');
                                    
                                                    if( (ip != -1) ) {
                                                        getAdminSendCommand(name, ip, 'cmd', stateCommand);
                                                    } else {
                                                        log('No configration found for ' + stateDevice, 'warn');
                                                    }
                                                });
                                            }
                                    
                                            /*****************
                                             * Also subscribe to "sendKey"
                                             *****************/
                                            on({id: statePath + '.sendKey', change: 'any'}, function(obj) {
                                    
                                                // First: Get the device + command state portion of obj.id, as variable is not available within "on({id..."
                                                let stateFull = obj.id // e.g. [javascript.0.Control-PC.PC-Maria.sendKey]
                                                let stateDeviceAndCommand = stateFull.substring(STATE_PATH.length +1); // e.g. [PC-Maria.sendKey]
                                                let stateDeviceAndCommandSplit = stateDeviceAndCommand.split('.');
                                                let stateDevice = stateDeviceAndCommandSplit[0];    // e.g. [PC-Maria]
                                    
                                                // Next, get the ip
                                                let ip = getConfigValuePerKey(CONFIG_DEVICES, 'name', stateDevice, 'ip');
                                    
                                                if( (ip != -1) ) {
                                                    getAdminSendCommand(name, ip, 'key', obj.state.val);
                                                } else {
                                                    log('No configration found for ' + stateDevice, 'warn');
                                                }
                                            });
                                    
                                        }
                                    }
                                    
                                    
                                    /* 
                                     * @param {string}  name     Name des Rechners, nur für Log-Ausgabe
                                     * @param {string}  host     IP-Adresse des Windows-PCs, z.B. 10.10.0.107
                                     * @param {string}  action   If command, use 'cmd', if key, use 'key', etc.
                                     * @param {string}  command  Userspezifischer Command wie z.B. "m_hibernate", oder "poweroff"
                                     */
                                    function getAdminSendCommand(name, host, action, command){
                                        
                                        let request = require('request');
                                        let options = { url: 'http://' + host + ':' + '8585' + '/?' + action + '=' + command };
                                    
                                        if (LOG_DEBUG) log('Send command to ' + name + ': ' + options.url);
                                        if (LOG_INFO) log('Send command [' + command + '] to ' + name); 
                                        request(options, function (error, response, body) {
                                            if ( (response !== undefined) && !error ) {
                                                if ( parseInt(response.statusCode) === 200 ) {
                                                    if (LOG_INFO) log(name + ' responds with [OK]'); 
                                                } else {
                                                    if (LOG_INFO) log(name + ' responds with unexpected status code [' + response.statusCode + ']');
                                                }
                                            } else {
                                                if (LOG_INFO) log('No response from ' + name + ', so it seems to be off.'); 
                                            }
                                        });
                                    }
                                    
                                    
                                    /**
                                     * Create script states
                                     */
                                    function createStates() {
                                    
                                        for (let lpConfDevice of CONFIG_DEVICES) {
                                    
                                            let name = lpConfDevice['name'];
                                            let nameClean = cleanStringForState(name);
                                            let statePath = STATE_PATH + '.' + nameClean;
                                    
                                            // Create Get Admin Command States
                                            for (let lpCommand of GETADMIN_COMMANDS) {
                                                createState(statePath + '.' + lpCommand, {'name':'Command: ' + lpCommand, 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':false });
                                            }
                                    
                                            // Create User Specific Command States
                                            if (! isLikeEmpty(GETADMIN_COMMANDS_OWN)) {
                                                for (let lpCommand of GETADMIN_COMMANDS_OWN) {
                                                    createState(statePath + '.' + lpCommand, {'name':'User Command: ' + lpCommand, 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':false });
                                                }
                                            }
                                    
                                            // Create State for sending a key
                                            createState(statePath + '.sendKey', {'name':'Send Key', 'type':'string', 'read':true, 'write':true, 'role':'state', 'def':'' });
                                    
                                    
                                        }
                                    
                                    }
                                    
                                    
                                    
                                    /**
                                     * Retrieve values from a CONFIG variable, example:
                                     * const CONF = [{car: 'bmw', color: 'black', hp: '250'}, {car: 'audi', color: 'blue', hp: '190'}]
                                     * To get the color of the Audi, use: getConfigValuePerKey('car', 'bmw', 'color')
                                     * To find out which car has 190 hp, use: getConfigValuePerKey('hp', '190', 'car')
                                     * @param {object}  config     The configuration variable/constant
                                     * @param {string}  key1       Key to look for.
                                     * @param {string}  key1Value  The value the key should have
                                     * @param {string}  key2       The key which value we return
                                     * @returns {any}    Returns the element's value, or number -1 of nothing found.
                                     */
                                    function getConfigValuePerKey(config, key1, key1Value, key2) {
                                        // We need to get all ids of LOG_FILTER into array
                                        for (let lpConfDevice of config) {
                                            if ( lpConfDevice[key1] === key1Value ) {
                                                if (lpConfDevice[key2] === undefined) {
                                                    return -1;
                                                } else {
                                                    return lpConfDevice[key2];
                                                }
                                            }
                                        }
                                        return -1;
                                    }
                                    
                                    
                                    
                                    /**
                                     * Will just keep letters, incl. Umlauts, numbers, "-" and "_" and "."
                                     * @param  {string}  strInput   Input String
                                     * @return {string}   the processed string 
                                     */
                                    function cleanStringForState(strInput) {
                                        let strResult = strInput.replace(/([^a-zA-ZäöüÄÖÜß0-9\-\._]+)/gi, '');
                                        return strResult;
                                    }
                                    
                                    /**
                                     * Checks if Array or String is not undefined, null or empty.
                                     * @param inputVar - Input Array or String, Number, etc.
                                     * @return true if it is undefined/null/empty, false if it contains value(s)
                                     * Array or String containing just whitespaces or >'< or >"< is considered empty
                                     */
                                    function isLikeEmpty(inputVar) {
                                        if (typeof inputVar !== 'undefined' && inputVar !== null) {
                                            let strTemp = JSON.stringify(inputVar);
                                            strTemp = strTemp.replace(/\s+/g, ''); // remove all whitespaces
                                            strTemp = strTemp.replace(/\"+/g, "");  // remove all >"<
                                            strTemp = strTemp.replace(/\'+/g, "");  // remove all >'<
                                            if (strTemp !== '') {
                                                return false;
                                            } else {
                                                return true;
                                            }
                                        } else {
                                            return true;
                                        }
                                    }
                                    
                                    /**
                                     * Clean Array: Removes all falsy values: undefined, null, 0, false, NaN and "" (empty string)
                                     * Source: https://stackoverflow.com/questions/281264/remove-empty-elements-from-an-array-in-javascript
                                     * @param {array} inputArray       Array to process
                                     * @return {array}  Cleaned array
                                     */
                                    function cleanArray(inputArray) {
                                      var newArray = [];
                                      for (let i = 0; i < inputArray.length; i++) {
                                        if (inputArray[i]) {
                                          newArray.push(inputArray[i]);
                                        }
                                      }
                                      return newArray;
                                    }
                                    
                                    E 1 Antwort Letzte Antwort
                                    0
                                    • MicM Offline
                                      MicM Offline
                                      Mic
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #123

                                      @Bostil
                                      Bitte poste das von dir verwendete JavaScript nicht als Spoiler, sondern in sog. "Code Tags".
                                      codetags.png

                                      Denn sonst kann man das JavaScript nicht richtig lesen.

                                      BostilB 1 Antwort Letzte Antwort
                                      1
                                      • MicM Mic

                                        @Bostil
                                        Bitte poste das von dir verwendete JavaScript nicht als Spoiler, sondern in sog. "Code Tags".
                                        codetags.png

                                        Denn sonst kann man das JavaScript nicht richtig lesen.

                                        BostilB Offline
                                        BostilB Offline
                                        Bostil
                                        schrieb am zuletzt editiert von
                                        #124

                                        @Mic Danke für den Hinweis - habe es oben angepasst. Liebe Grüße.

                                        1 Antwort Letzte Antwort
                                        0
                                        • BostilB Bostil

                                          Erhalte in dem Control-PC Script von @Mic folgende Fehlermeldung:

                                          15:08:28.895 error javascript.0 (2088) script.js.common.MSWindows compile failed: at script.js.common.MSWindows:49

                                          Update:
                                          Habe @mic Script übertragen und lediglich die IP des Rechners ergänzt. Letztlich würde ich gerne am Mini-PC wo auf einem Windows-PC die Verbindung zum iobroker auf einem Raspi4 hergestellt wird, direkt noch Programme neben der VIS (über Opera) starten können.

                                          Hat jemand ein ähnliches Problem ?

                                          /***************************************************************************************
                                           * Script to control Windows PCs
                                           * -------------------------------------------------------------------------------------
                                           * Send commands to Windows PCs for shutdown, hibernate, etc.
                                           * Source: https://forum.iobroker.net/topic/1570/windows-steuerung and https://blog.instalator.ru/archives/47
                                           * 
                                           * Aktuelle Version:    https://github.com/Mic-M/iobroker.control-ms-windows
                                           * Support:             https://forum.iobroker.net/topic/1570/windows-steuerung
                                           * ---------------------------
                                           * Change Log:
                                           *  0.1 Mic  - Initial Version
                                           * ---------------------------
                                           * Many thanks to Vladimir Vilisov for GetAdmin. Check out his website at
                                           * https://blog.instalator.ru/archives/47
                                           ***************************************************************************************/
                                          
                                          /*******************************************************************************
                                           * Zur Einrichtung von GetAdmin
                                           ******************************************************************************/
                                          /*
                                           * 1) Software "GetAdmin" (getestet Version 2.6) auf Zielrechner installieren.
                                           *    Link: https://blog.instalator.ru/archives/47
                                           * 2) In GetAdmin, ganz oben links unter "Server": 
                                           *     - IP: die IP-Adresse der ioBrokers eintragen
                                           *     - Port: Standard-Port 8585 so lassen
                                           * 3) In GetAdmin, oben unter "Options" Haken bei Minimize und Startup setzen, 
                                           *    damit sich GetAdmin bei jedem Rechnerstart startet und das minimiert.
                                           *    Dann mit "Save" bestätigen.
                                           * 4) Fertig
                                           * ------------------------------------------------------------------------------
                                           * Beispiele für individuelle Einträge in GetAdmin Command list:
                                           *     a) Ruhezustand: 
                                           *         - in Spalte 'Command' z.B. "m_hibernate" eintragen
                                           *         - in Spalte 'PATH or URL' eintragen: shutdown
                                           *         - in Spalte 'PARAMETERS' eintragen: -h
                                           *     b) Energie sparen:
                                           *         - in Spalte 'Command' z.B. "m_sleep" eintragen
                                           *         - in Spalte 'PATH or URL' eintragen: rundll32.exe
                                           *         - in Spalte 'PARAMETERS' eintragen: powrprof.dll,SetSuspendState
                                           */
                                          
                                          
                                          
                                          /*******************************************************************************
                                           * Konfiguration: Pfade
                                           ******************************************************************************/
                                          // Pfad, unter dem die States (Datenpunkte) in den Objekten angelegt werden.
                                          // Kann man so bestehen lassen.
                                          const STATE_PATH = 'javascript.'+ instance + '.' + 'Control-PC';
                                          
                                          /*******************************************************************************
                                           * Konfiguration: Geräte
                                           ******************************************************************************/
                                          // Hier deine Geräte aufnehmen. Du kannst beliebig viele ergänzen.
                                          const CONFIG_DEVICES = [
                                              {
                                                  name: 'Mini-PC',   // Für Datenpunkt und Ausgabe
                                                  ip:   '192.168.178.13',
                                              },
                                              {
                                                  name: 'Gästezimmer-PC',
                                                  ip:   '10.10.0.102',
                                              },
                                          ];
                                          
                                          /*******************************************************************************
                                           * Konfiguration: Get Admin Commands
                                           ******************************************************************************/
                                          // Eigene Commands, die in Get Admin in der Command List eingetragen sind, Spalte "Command"
                                          // Bitte ohne Leerzeichen, Sonderzeichen, etc.
                                          // Falls keine eigenen Commands: GETADMIN_COMMANDS_OWN = [];
                                          const GETADMIN_COMMANDS_OWN = ['m_hibernate', 'm_sleep', '', ''];
                                          
                                          
                                          /*******************************************************************************
                                           * Konfiguration: Konsolen-Ausgaben
                                           ******************************************************************************/
                                          // Auf true setzen, wenn ein paar Infos dieses Scripts im Log ausgegeben werden dürfen.
                                          const LOG_INFO = true;
                                          
                                          // Auf true setzen, wenn zur Fehlersuche einige Meldungen ausgegeben werden sollen.
                                          // Ansonsten bitte auf false stellen.
                                          const LOG_DEBUG = false;
                                          
                                          
                                          
                                          /*************************************************************************************************************************
                                           * Ab hier nichts mehr ändern / Stop editing here!
                                           *************************************************************************************************************************/
                                          
                                          /********************************************************************************
                                           * Durch Get Admin unterstützte Commands
                                           ********************************************************************************/
                                          const GETADMIN_COMMANDS = ['process', 'shutdown', 'poweroff', 'reboot', 'forceifhung', 'logoff', 'monitor1', 'monitor2'];
                                          
                                          
                                          /********************************************************************************
                                           * init - This is executed on every script (re)start.
                                           ********************************************************************************/
                                          init();
                                          function init() {
                                              
                                              // Create our states, if not yet existing.
                                              createStates();
                                          
                                              // States should have been created, so continue
                                              setTimeout(function(){    
                                          
                                                  // Subscribe to states
                                                  doSubscriptions();
                                          
                                              }, 2000);
                                          
                                          }
                                          
                                          function doSubscriptions() {
                                          
                                              // Loop through the devices
                                              for (let lpConfDevice of CONFIG_DEVICES) {
                                          
                                                  let name = lpConfDevice['name'];
                                                  let statePath = STATE_PATH + '.' + name;
                                          
                                                  /*****************
                                                   * Loop through the commands to subscribe accordingly
                                                   *****************/
                                                  let allCommands = cleanArray([].concat(GETADMIN_COMMANDS, GETADMIN_COMMANDS_OWN)); // merge both into one array
                                                  for (let lpCommand of allCommands) {
                                          
                                                      on({id: statePath + '.' + lpCommand, change: 'any', val: true}, function(obj) {
                                          
                                                          // First: Get the device + command state portion of obj.id, as variable is not available within "on({id..."
                                                          let stateFull = obj.id // e.g. [javascript.0.Control-PC.PC-Maria.shutdown]
                                                          let stateDeviceAndCommand = stateFull.substring(STATE_PATH.length +1); // e.g. [PC-Maria.shutdown]
                                                          let stateDeviceAndCommandSplit = stateDeviceAndCommand.split('.');
                                                          let stateDevice = stateDeviceAndCommandSplit[0];    // e.g. [PC-Maria]
                                                          let stateCommand = stateDeviceAndCommandSplit[1];   // e.g. [shutdown]
                                          
                                                          // Next, get the ip
                                                          let ip = getConfigValuePerKey(CONFIG_DEVICES, 'name', stateDevice, 'ip');
                                          
                                                          if( (ip != -1) ) {
                                                              getAdminSendCommand(name, ip, 'cmd', stateCommand);
                                                          } else {
                                                              log('No configration found for ' + stateDevice, 'warn');
                                                          }
                                                      });
                                                  }
                                          
                                                  /*****************
                                                   * Also subscribe to "sendKey"
                                                   *****************/
                                                  on({id: statePath + '.sendKey', change: 'any'}, function(obj) {
                                          
                                                      // First: Get the device + command state portion of obj.id, as variable is not available within "on({id..."
                                                      let stateFull = obj.id // e.g. [javascript.0.Control-PC.PC-Maria.sendKey]
                                                      let stateDeviceAndCommand = stateFull.substring(STATE_PATH.length +1); // e.g. [PC-Maria.sendKey]
                                                      let stateDeviceAndCommandSplit = stateDeviceAndCommand.split('.');
                                                      let stateDevice = stateDeviceAndCommandSplit[0];    // e.g. [PC-Maria]
                                          
                                                      // Next, get the ip
                                                      let ip = getConfigValuePerKey(CONFIG_DEVICES, 'name', stateDevice, 'ip');
                                          
                                                      if( (ip != -1) ) {
                                                          getAdminSendCommand(name, ip, 'key', obj.state.val);
                                                      } else {
                                                          log('No configration found for ' + stateDevice, 'warn');
                                                      }
                                                  });
                                          
                                              }
                                          }
                                          
                                          
                                          /* 
                                           * @param {string}  name     Name des Rechners, nur für Log-Ausgabe
                                           * @param {string}  host     IP-Adresse des Windows-PCs, z.B. 10.10.0.107
                                           * @param {string}  action   If command, use 'cmd', if key, use 'key', etc.
                                           * @param {string}  command  Userspezifischer Command wie z.B. "m_hibernate", oder "poweroff"
                                           */
                                          function getAdminSendCommand(name, host, action, command){
                                              
                                              let request = require('request');
                                              let options = { url: 'http://' + host + ':' + '8585' + '/?' + action + '=' + command };
                                          
                                              if (LOG_DEBUG) log('Send command to ' + name + ': ' + options.url);
                                              if (LOG_INFO) log('Send command [' + command + '] to ' + name); 
                                              request(options, function (error, response, body) {
                                                  if ( (response !== undefined) && !error ) {
                                                      if ( parseInt(response.statusCode) === 200 ) {
                                                          if (LOG_INFO) log(name + ' responds with [OK]'); 
                                                      } else {
                                                          if (LOG_INFO) log(name + ' responds with unexpected status code [' + response.statusCode + ']');
                                                      }
                                                  } else {
                                                      if (LOG_INFO) log('No response from ' + name + ', so it seems to be off.'); 
                                                  }
                                              });
                                          }
                                          
                                          
                                          /**
                                           * Create script states
                                           */
                                          function createStates() {
                                          
                                              for (let lpConfDevice of CONFIG_DEVICES) {
                                          
                                                  let name = lpConfDevice['name'];
                                                  let nameClean = cleanStringForState(name);
                                                  let statePath = STATE_PATH + '.' + nameClean;
                                          
                                                  // Create Get Admin Command States
                                                  for (let lpCommand of GETADMIN_COMMANDS) {
                                                      createState(statePath + '.' + lpCommand, {'name':'Command: ' + lpCommand, 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':false });
                                                  }
                                          
                                                  // Create User Specific Command States
                                                  if (! isLikeEmpty(GETADMIN_COMMANDS_OWN)) {
                                                      for (let lpCommand of GETADMIN_COMMANDS_OWN) {
                                                          createState(statePath + '.' + lpCommand, {'name':'User Command: ' + lpCommand, 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':false });
                                                      }
                                                  }
                                          
                                                  // Create State for sending a key
                                                  createState(statePath + '.sendKey', {'name':'Send Key', 'type':'string', 'read':true, 'write':true, 'role':'state', 'def':'' });
                                          
                                          
                                              }
                                          
                                          }
                                          
                                          
                                          
                                          /**
                                           * Retrieve values from a CONFIG variable, example:
                                           * const CONF = [{car: 'bmw', color: 'black', hp: '250'}, {car: 'audi', color: 'blue', hp: '190'}]
                                           * To get the color of the Audi, use: getConfigValuePerKey('car', 'bmw', 'color')
                                           * To find out which car has 190 hp, use: getConfigValuePerKey('hp', '190', 'car')
                                           * @param {object}  config     The configuration variable/constant
                                           * @param {string}  key1       Key to look for.
                                           * @param {string}  key1Value  The value the key should have
                                           * @param {string}  key2       The key which value we return
                                           * @returns {any}    Returns the element's value, or number -1 of nothing found.
                                           */
                                          function getConfigValuePerKey(config, key1, key1Value, key2) {
                                              // We need to get all ids of LOG_FILTER into array
                                              for (let lpConfDevice of config) {
                                                  if ( lpConfDevice[key1] === key1Value ) {
                                                      if (lpConfDevice[key2] === undefined) {
                                                          return -1;
                                                      } else {
                                                          return lpConfDevice[key2];
                                                      }
                                                  }
                                              }
                                              return -1;
                                          }
                                          
                                          
                                          
                                          /**
                                           * Will just keep letters, incl. Umlauts, numbers, "-" and "_" and "."
                                           * @param  {string}  strInput   Input String
                                           * @return {string}   the processed string 
                                           */
                                          function cleanStringForState(strInput) {
                                              let strResult = strInput.replace(/([^a-zA-ZäöüÄÖÜß0-9\-\._]+)/gi, '');
                                              return strResult;
                                          }
                                          
                                          /**
                                           * Checks if Array or String is not undefined, null or empty.
                                           * @param inputVar - Input Array or String, Number, etc.
                                           * @return true if it is undefined/null/empty, false if it contains value(s)
                                           * Array or String containing just whitespaces or >'< or >"< is considered empty
                                           */
                                          function isLikeEmpty(inputVar) {
                                              if (typeof inputVar !== 'undefined' && inputVar !== null) {
                                                  let strTemp = JSON.stringify(inputVar);
                                                  strTemp = strTemp.replace(/\s+/g, ''); // remove all whitespaces
                                                  strTemp = strTemp.replace(/\"+/g, "");  // remove all >"<
                                                  strTemp = strTemp.replace(/\'+/g, "");  // remove all >'<
                                                  if (strTemp !== '') {
                                                      return false;
                                                  } else {
                                                      return true;
                                                  }
                                              } else {
                                                  return true;
                                              }
                                          }
                                          
                                          /**
                                           * Clean Array: Removes all falsy values: undefined, null, 0, false, NaN and "" (empty string)
                                           * Source: https://stackoverflow.com/questions/281264/remove-empty-elements-from-an-array-in-javascript
                                           * @param {array} inputArray       Array to process
                                           * @return {array}  Cleaned array
                                           */
                                          function cleanArray(inputArray) {
                                            var newArray = [];
                                            for (let i = 0; i < inputArray.length; i++) {
                                              if (inputArray[i]) {
                                                newArray.push(inputArray[i]);
                                              }
                                            }
                                            return newArray;
                                          }
                                          
                                          E Offline
                                          E Offline
                                          el_malto
                                          schrieb am zuletzt editiert von el_malto
                                          #125

                                          @Bostil sagte in Windows Steuerung:

                                          Erhalte in dem Control-PC Script von @Mic folgende Fehlermeldung:

                                          15:08:28.895 error javascript.0 (2088) script.js.common.MSWindows compile failed: at script.js.common.MSWindows:49

                                          Ich bin kein JS Pro, aber die Fehlermeldung sagt, das in Zeile 49 ein fehler ist.

                                          Ersetze mal die Zeile 49 durch diese hier:

                                          const STATE_PATH = 'javascript.' + instance + '.' + 'Control-PC';
                                          

                                          Ich vermute das einfach eine Leerzeichen zwischen 'javascript' und dem + Zeichen gefehlt hat.

                                          BostilB 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          712

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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