NEWS
[gelöst] WOL als Magicpaket an NAS per Blockly-Script
-
O. k., mache ich später. Bin gerade nur mit dem Handy online. Da ließ es sich nicht rauskopieren
Aber schon mal vielen Dank.
-
Kein Problem, war in deinem Fall jetzt nicht so viel Code..
Hier mal mein Vorschlag:
var wol = require('wake_on_lan'); var Zeitplan = null; function WOLSenden() { if (getState('hue.0.Philips_hue.Lichtbox.on').val === true) { wol.wake("4C:...:48"); } else { clearSchedule(Zeitplan); log('Lichtbox aus. Zeitplan gelöscht - warte wieder auf Lichtbox an.'); } } on({id: "hue.0.Philips_hue.Lichtbox.on", val: true}, function (obj) { log('Lichtbox an. Sende alle 60 Sekunden WOL Paket.'); Zeitplan = schedule("* * * * *", WOLSenden); });
Musst deine MAC Adresse noch in Zeile 5 eintragen. ("4C:…:48") habe ich jetzt mal als Platzhalter eingetragen.
Gruß
-
@BuZZy und alle die sich an der Diskussion beteiligt haben:
Vielen Dank! Nun läuft das Script genauso, wie ich mir das vorgestellt habe!
In diesem Sinne: Gute Nacht
-
@BuZZy said in [gelöst] WOL als Magicpaket an NAS per Blockly-Script:
Kein Problem, war in deinem Fall jetzt nicht so viel Code..
Hier mal mein Vorschlag:
var wol = require('wake_on_lan'); var Zeitplan = null; function WOLSenden() { if (getState('hue.0.Philips_hue.Lichtbox.on').val === true) { wol.wake("4C:...:48"); } else { clearSchedule(Zeitplan); log('Lichtbox aus. Zeitplan gelöscht - warte wieder auf Lichtbox an.'); } } on({id: "hue.0.Philips_hue.Lichtbox.on", val: true}, function (obj) { log('Lichtbox an. Sende alle 60 Sekunden WOL Paket.'); Zeitplan = schedule("* * * * *", WOLSenden); });
Musst deine MAC Adresse noch in Zeile 5 eintragen. ("4C:…:48") habe ich jetzt mal als Platzhalter eingetragen.
Gruß
Ich versuche mich hier mal. Vllt wird es ja noch gelesen.
Ich habe ihn mal so abgeändert. Will per Cron zu bestimmten Zeiten den Server wecken, das würde ich mit nem Blockly realisieren.
var wol = require('wake_on_lan'); function WOLSenden() { if (getState('0_userdata.0.Keller.Medienserver_aufwecken').val === true) { wol.wake("a8:a1:59:02:f1:34"); log("WOL Paket an Medienserver gesendet", "info"); } } );
Leider stimmt hier die Syntax noch nicht ganz. Kann mir da einer helfen ? Irgendwo muss noch ein ( hin.
-
@D3ltoroxp
Du willst das so umbauen, dass es nur per Trigger Zeit funktioniert.
Dann so (Blockly Import):<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="~?-s4u{p:Gmy-!.0S;v)" x="113" y="113"> <mutation statements="false"></mutation> <field name="NAME">WOL</field> <field name="SCRIPT">dmFyIHdvbCA9IHJlcXVpcmUoJ3dha2Vfb25fbGFuJyk7DQpmdW5jdGlvbiBXT0xTZW5kZW4oKSB7DQogICAgd29sLndha2UoIjJjOmY0OjMyOjY4OmU4OmU4Iik7DQogICAgbG9nKCJXT0wgUGFrZXQgUHJveG1veCBCYWNrdXAgZ2VzZW5kZXQiLCAiaW5mbyIpOw0KfQ0KV09MU2VuZGVuKCk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="schedule" id="Q|dM3{{#86o0,!{@[s=O" x="63" y="212"> <field name="SCHEDULE">55 1 * * *</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="Yye~VU]8!L{l#{yWjgZy"> <mutation name="WOL"></mutation> </block> </statement> </block> </xml> <xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="~?-s4u{p:Gmy-!.0S;v)" x="113" y="113"> <mutation statements="false"></mutation> <field name="NAME">WOL</field> <field name="SCRIPT">dmFyIHdvbCA9IHJlcXVpcmUoJ3dha2Vfb25fbGFuJyk7DQpmdW5jdGlvbiBXT0xTZW5kZW4oKSB7DQogICAgd29sLndha2UoIjJjOmY0OjMyOjY4OmU4OmU4Iik7DQogICAgbG9nKCJXT0wgUGFrZXQgUHJveG1veCBCYWNrdXAgZ2VzZW5kZXQiLCAiaW5mbyIpOw0KfQ0KV09MU2VuZGVuKCk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="schedule" id="Q|dM3{{#86o0,!{@[s=O" x="63" y="212"> <field name="SCHEDULE">55 1 * * *</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="Yye~VU]8!L{l#{yWjgZy"> <mutation name="WOL"></mutation> </block> </statement> </block> </xml>
Alternativ nimm statt des Cron-Triggers deinen Datenpunkt '0_userdata.0.Keller.Medienserver_aufwecken'
-
mach ich etwas falsch! ich bekomme eine riesen Fehlermeldung wenn ich das blockly importieren möchte?
-
@bishop hey, ja das stimmt ich kann es auch nicht mehr importieren. Habe es gerade versucht nochmal ähnlich nachzustellen. Denke das hilft dir schon: Versuch das mal zu importieren (meine IP hinter der MAC die ich wecken möchte ist 10.4.4.12):
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="procedures_defcustomnoreturn" id="l9BOg[,wM.v6?aXF.)}%" x="138" y="162"> <mutation statements="false"></mutation> <field name="NAME">WOL 10.4.4.12</field> <field name="SCRIPT">dmFyIHdvbCA9IHJlcXVpcmUoJ3dha2Vfb25fbGFuJyk7DQpmdW5jdGlvbiBXT0xTZW5kZW4oKSB7DQogICAgd29sLndha2UoIjcwOjg1OmMyOjdkOjg2OmI4Iik7DQogICAgbG9nKCJXT0wgUGFrZXQgUHJveG1veCAxMC40LjQuMTIgZ2VzZW5kZXQiLCAiaW5mbyIpOw0KfQ0KV09MU2VuZGVuKCk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="schedule" id="c|=|72$oDp1Mr+3%l/_[" x="88" y="238"> <field name="SCHEDULE">50 23 * * *</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="LPggi$$EH{^Q[60P+vG/"> <mutation name="WOL 10.4.4.12"></mutation> </block> </statement> </block> </xml>
-
@iobroker_alex
ok, dass funktioniert mal!
Ich muss noch das installieren oder? -
Müsste das nicht auch mit
https://github.com/iobroker-community-adapters/ioBroker.tr-064#command--commandresult-state
zu machen sein?
edit:
vieleicht kann es jemand brauchen!
Im tr-064 adapter unter states DP command das einfügen mit abgeänderter Mac natürlich.{"service": "urn:dslforum-org:service:Hosts:1","action": "X_AVM-DE_WakeOnLANByMACAddress", "params": { "NewMACAddress": "00:00:00:00:00:00"}}
-
mit diesem Script (Blockly) hier funktioniert es bei meinem QNAP NAS (MAC Adresse ist entsprechend anzupassen:
<block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="=pqc2E7{zZ+Ut(cA0hJ0" x="588" y="138"> <mutation statements="false"></mutation> <field name="NAME">WOL NAS</field> <field name="SCRIPT">dmFyIHdvbCA9IHJlcXVpcmUoJ3dha2Vfb25fbGFuJyk7DQoNCndvbC53YWtlKCcwMDowMDowMDowMDowMDowMCcpOw0KDQp3b2wud2FrZSgnMDA6MDA6MDA6MDA6MDA6MDAnLCBmdW5jdGlvbihlcnJvcikgew0KICBpZiAoZXJyb3IpIHsNCiAgICAvLyBoYW5kbGUgZXJyb3INCiAgfSBlbHNlIHsNCiAgICAvLyBkb25lIHNlbmRpbmcgcGFja2V0cw0KICB9DQp9KTsNCg0KdmFyIG1hZ2ljX3BhY2tldCA9IHdvbC5jcmVhdGVNYWdpY1BhY2tldCgnMDA6MDA6MDA6MDA6MDA6MDAnKTsNCg0K</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block>