NEWS
Windows Steuerung
-
Ich mache das mit dem Systeminfo Adapter. Der ist auch recht einfach zu konfigurieren.
-
habe mal einen stresstest gemacht - alle 5 sek ein chk (2 verschiedene processe - einer true einer false)
alle 7 sek eine cmd abfrageläuft schon halbe stunde - ohne fehler
mit diesem script
on({id: 'javascript.1.GetAdmin.chk', change: 'any'}, function (obj) { if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){ var curly = 'curl "http://192.168.178.36:8585/?chk=' + getState('javascript.1.GetAdmin.chk').val + '"'; log(curly); exec(curly, function(err, stdout, stderr) { if (err) { log(stderr,'error'); sendTo("email", "send", { text: stderr + 'error', to: 'xxxxxx.de', subject: 'Mount Reserve Fehler' }); return; } log(stdout); var re = /.+<p>([a-z]+)<\/p>.+/g; stdout2 = stdout.replace(re, '$1'); log(stdout2); setState("javascript.1.GetAdmin.singleprocess"/*CloudHelp*/, stdout2); if (stdout2 != "true") {stdout2 = "false";} }); log('Send command to GetAdmin - cmd: '+ obj.newState.val); }else{log('GetAdmin. No command found.');} }); /***************************************************************************************/
hab auch mal des server load gescheckt - keine probleme - brauche keinen zusätlichen adapter
lg
hatte lust zum ausprobieren
-
Okay, danke für euer Feedback. Hab mir den systeminfo Adapter angesehen, aber der macht eigentlich auch nicht wirklich was anderes als der Parser Adapter, mit dem Unterschied, dass er noch zusätzliche Sachen abfragen kann.
Leider bin ich des scriptens nicht mächtig, daher versuche ich soviel wie möglich mit Blockly oder Adaptern zu realisieren, damits für mich nachvollziehbar bleibt.
Ich habe mich am WE jedenfalls nochmals mit dem Parser Adapter gespielt und die Intervalle auf 10, 15 und 20 Sekunden für meine 3 Chks gesetzt. Das läuft jetzt erstmal 2 Tage stabil ohne Appcrash.
Anscheinend war also der Intervall zu knapp gesetzt...Besten Dank für Hilfe.
-
okay hab mich wohl leider zu früh gefreut.
Heute in der Früh hatte GetAdmin wieder einen AppCrash ...@liv-in-sky : lässt sich dein Script auch per Blockly umsetzen ? Könntest du mir hier behilflich sein ?
-
sorry - ist zu aufwendig - da ja ein script vorliegt.
gibt es einen grund, warum du das umzusetzen willst - muss noch etwas geändert werden, denn es erfüllt ja seinen zweck
ich bin auch ein blockly fan und fast alle meine scripts sind blockly aber bei solchen scripts ist das so einfacher
für diese zeilen
var re = /.+<p>([a-z]+)</p>.+/g;
stdout2 = stdout.replace(re, '$1');bräuchte ich länger in blockly wie in js
-
Mein iobroker läuft auf windows. Hat das einen Einfluss auf dein Script ?
Kann ich dein Script einfach copy/pasten als js oder muss ich vorher noch variablen o.ä. anlegen ? -
@Qlink
Bei mir läuft GetAdmin schon seit Monaten ohne Probleme. Muss also an deinem Polling liegen.
Warum verlagerst du die Abfragen nicht auf den Win10 Rechner direkt und lässt das z.B. durch einen PowerShell Skript machen, welcher von GetAdmin gestartet wird?
PowerShell -
ok verstehe- definitiv ein argument - habe kein windows für iobroker - daher denke ich es müßte ähnlich sein - soweit ich weiß muß man "curl für windows" installieren. wie das mit powershell läuft, weiß ich nicht.
https://curl.haxx.se/windows/ich habe nur mit batch files auf windows gearbeitet - da benötigt man curl für windows - das ist ein exe file und man legt es einfach in den system32 ordner - hier ein bild im dosfenster meines rechner indem ich curl aufrufe
im script wird das true herausgefiltert und in den iobrokerdatenpunkt gescchrieben!vielleicht könnte @mayer so nett sein und dir das mit der powershell erklären -(falls du das nicht weißt) er weiß dann auch sicher, wie man den exec befehl im script ändern muss - ich kann es hier bei mir nicht testen, deshalb kann ich dir keine hilfe sein
-
@mayer grundsätzlich möchte ich versuchen sowenige Instanzen wie möglich in meine Abläufe zu integrieren. Powershell wäre nur noch eine weiter Instanz/Abhängigkeit. Daher gefällt mir der Ansatz mit curl für windows erstmal besser...
@liv-in-sky danke für den Vorschlag. Die Frage wäre dann eigentlich nur wie man aus Blockly die curl exe aufrufen kann...
hier hat das anscheinend schonmal jemand probiert, aber wohl erfolglos: https://forum.iobroker.net/topic/4904/sh-oder-bat-datei-ausführen/7Eventuell hast du ja eine Idee wie man das mittels Blockly und exec aufrufen kann ?
-
in deinem beispiel ist das auch linux - bash !
macht nix
wird schwierig - da ich nicht testen kann - must du machen
versuch mal
- ip ändern - den rückgabewert habe ich einen extra datenpunkt "singleprocess"
- result musst du als variable anlegen
wenn das funktioniert , können wir den rest darum-herum-bauen
-
das scheint schon ganz gut zu klappen.
wofür ist erstelle Text aus Wert von javascript1.GetAdmin.chk ? Das bleibt bei mir leer ...Wie kann ich das curl Ergebnis jetzt auswerten und entsprechend weiterverarbeiten ?
Würdest du den exec Befehl in einem Intervall innerhalb Blockly aufrufen ?Vielen Dank jedenfalls für deine tolle Hilfe !
-
das blockly läuft bei mir garnicht - das war nur ein beispiel - damit du das prinzip siehst
der aufruf liegt an dir - entweder dauerhaft mit cron - oder aber es gibt zeiten , wo du es nicht nutzt und mit einem einzelnen datenpunbkt steuerst - so würd ich es machen - wenn nicht gebraucht - keine abfrage - also eher eine kleines steurungsscript voran stellen
aber das schewierigste kommt erst - wir müssen das true aus der antwort generieren - so was habe ich noch nie mit blockly gemacht - ich schwenke da meist auf nodered - das find ich super genial für solche aufgaben
man könnte auch eine funktion ins blockly einführen - ich schau mal was mir einfällt
-
versuche mal das - bei mir gehts - in blockly importieren !
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="0pe!D9m|DQ0n2vS{pc^L">i</variable> <variable type="" id="IAIZZNEg)FEHn(.QqghV">curly</variable> <variable type="" id="9y]DS@|@Bk_.|#S~9?`Z">result</variable> <variable type="undefined" id="timeout">timeout</variable> </variables> <block type="on_ext" id="#Ua9Q^]Tk`C.~BXLBK~i" x="188" y="88"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="*^SU@bJ`LfXLD:8TSg=6"> <field name="oid">javascript.1.GetAdmin.chk</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="/bC!@nXBob[Lh6!kVdx="> <field name="VAR" id="IAIZZNEg)FEHn(.QqghV" variabletype="">curly</field> <value name="VALUE"> <block type="text_join" id="#05!$CXXh9(tA1f]lzmc"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="fYMXe;OE*KC}sSC5tjA$"> <field name="TEXT">curl "http://192.168.178.36:8585/?chk=</field> </block> </value> <value name="ADD1"> <block type="get_value" id="#_;FY?:{NT3OMs%Bi4oO"> <field name="ATTR">val</field> <field name="OID">javascript.1.GetAdmin.chk</field> </block> </value> <value name="ADD2"> <block type="text" id="YY`yunwF?raQc;tVM~B,"> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="exec" id="eSJpXB=73vc).D9Q)|[-"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="^hQJf(G00rYsUyb-)lCL"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="vKQP4@tnNu-3,Q]f(2x;"> <field name="VAR" id="IAIZZNEg)FEHn(.QqghV" variabletype="">curly</field> </block> </value> <statement name="STATEMENT"> <block type="control" id="XBOz5lk(8G!`+$uX*U)L"> <mutation delay_input="true"></mutation> <field name="OID">javascript.1.GetAdmin.singleprocess</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="variables_get" id="jPNU,YG#ZJnce)*MW2Cz"> <field name="VAR" id="9y]DS@|@Bk_.|#S~9?`Z" variabletype="">result</field> </block> </value> <next> <block type="timeouts_settimeout" id="4B5ok$v)19CRt3;9Dru/"> <field name="NAME">timeout</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="zbf*lGC7X0$qd^(T(9|A"> <mutation name="etwas tun2"> <arg name="i"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="!,=a4X?*2*@4;HAUI_S;"> <field name="VAR" id="9y]DS@|@Bk_.|#S~9?`Z" variabletype="">result</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="t.a?5b7s^$L%nOYdazMf" x="238" y="538"> <mutation statements="false"> <arg name="i" varid="0pe!D9m|DQ0n2vS{pc^L"></arg> </mutation> <field name="NAME">etwas tun2</field> <field name="SCRIPT">dmFyIHJlID0gLy4rPHA+KFthLXpdKyk8XC9wPi4rL2c7DQogICAgIGkgPSAgICBpLnJlcGxhY2UocmUsICAnJDEnKTsNCiAgDQogICAgbG9nKGkpOw0KICAgIHNldFN0YXRlKCJqYXZhc2NyaXB0LjEuR2V0QWRtaW4uc2luZ2xlcHJvY2VzcyIvKkNsb3VkSGVscCovLCBpKTsNCiAgICBpZiAoaSAhPSAidHJ1ZSIpIHtyZXN1bHQgPSAiZmFsc2UiO30=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
-
sieht so aus :
ach ja - den steuere single process mit result kannst du deaktivieren und den timeout mal auf 500ms setzen - musst du ausprobieren, wie "kurz" er sein darf - wird ja über netzwerk gearbeitet
-
@Micro1959 sagte in Windows Steuerung:
Auf einem anderen Rechner mit Avira meckert das Antivirenprogramm und sagt, es hätte den BDS/Hupigon.Gen Tronjaner gefunden.
Wollte das mal ausprobieren.
Mein Antivir meckert auch.
Also hab ichs dann gelassen. -
Mehr oder weniger alle Antiviren Programme meckern wenn man Programme oder Tools nutzt die eine direkte Windows Steuerung ermöglichen.
-
@wendy2702 sagte in Windows Steuerung:
Mehr oder weniger alle Antiviren Programme meckern wenn man Programme oder Tools nutzt die eine direkte Windows Steuerung ermöglichen.
Kann ich so nicht bestätigen bzw. nachvollziehen.
Habe einige Programme die Windows steuern (z.B. Ultramon).
Und bei keinem meckert Antivir.
-
Nur mal kurz gelesen was Ultramon ist/macht.
Ist mit GetAdmin und dessen Funktionen nicht wirklich vergleichbar.
Wenn ihr aber Angst habt ist es ok wenn ihr GetAdmin nicht nutzt.
-
ich hätte am WE mal probiert deinen Vorschlag nachzubauen.
Sieht aktuell so bei mir aus:
Ich musste den Initialtrigger umbauen(bei Erkennung einer Bewegung vorm Tablet), weil das Script sonst nicht auslöst ...Und das Ergebnis sieht so aus:
Allerdings kann ich das Blockly Script zu 100% nachvollziehen. Das ist mir ein wenig zu hoch.
Auch sieht das Ergebnis nicht anders aus als bei der Erstversion weiter oben.
Wie hilft mir das neue Script die Werte verarbeiten zu können ?Ich steh hier irgendwie auf dem Schlauch...
-
@Qlink
hi - das ist ja schon ein wenig her - muss mich wieder eindenkenist das das ziel ?
siehe Blockly.
- Ich wecke das Display meines Win10 Rechners auf, wenn eine Bewegung erkannt wird.
- Ich prüfe ob Chrome läuft -> wenn ja, dann nur Display einschalten -> wenn nein, dann Chrome mit VIS starten und Display einschalten
- Ich schalte das Display nach 1min automatisch wieder aus.
- Ich prüfe ob VLC läuft, wenn ja, dann Display nicht automatisch nach 1min ausschalten -> wenn nein, dann Display nach 1 min ausschalten
Dazu brauche ich permanent den Status ob Chrome und/oder VLC laufen ...