@paul53:
@Dutchman:
Logic mit nem PING und erst wen der PING den onkyo findet schalten Dafür gibt es den ioBroker.ping Adapter. Den ping-Erfolg kann man einfach [http://forum.iobroker.net/viewtopic.php?f=21&t=5914#p60755](http://forum.iobroker.net/viewtopic.php?f=21&t=5914#p60755) auswerten.
Danke Paul hab ich total ubersehen in aller eile !
@riconr1:
das Angebot nehme ich gerne an. So ein Beispiel würde mir doch sehr helfen.
MfG Enrico `
Machen wir dafuer gibt es ja communitys 😄
Also hier mal ein blockly wobei ich ganz einfach den status eines HM schalters ueberpruefe ober er an oder aus ist.
Ist der schalter an = direckt commando auf wert fuer Onkyo receiver
Ist der Schalter aus = Delay beim einschalten des onkyo
979_simple_blockly.jpg
Hier der code um diesen block in dein system zu kopieren:
! <block xmlns="http://www.w3.org/1999/xhtml" type="controls_if" id="?5f2Q;%s3J)j`=w+(JJm" x="113" y="112.99999999999994"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="qcKV[)q6u}?V#KQ=%Z9^"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Q@vB@|0x82t1MV(4_K#D"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.MEQ0165864.2.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="Mt^s4uN(2xfLS{3s,#cC"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="update" id="4a[{alj:Vq2aGq@!|n[~"><mutation delay_input="false"></mutation> <field name="OID">harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="gA)m;Nv-1-4JRZCz{)w="><field name="TEXT">1</field></block></value> <next><block type="comment" id="{=BTv2=d]A!Y8yG^:I4]"><field name="COMMENT">Bei kontrolle schalter = AN kein delay schalte</field></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="M]xH9[ITv+6Nc{,Kc1+F"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6xrYTG:3rg=YzM`u9-_w"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.MEQ0165864.2.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="7Lpn`xX+)/].)XML6/qo"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO1"><block type="comment" id="~6?Ql)MAmo);:Y3d!b+5"><field name="COMMENT">Bei kontrolle schalter = AUS schalte mit delay</field> <next><block type="timeouts_settimeout" id="^tFK[S8%S)zp%d5;,r-f"><field name="NAME">timeout</field> <field name="DELAY">1000</field> <statement name="STATEMENT"><block type="update" id="kU~2dFzbn3M5@__qyh4^"><mutation delay_input="false"></mutation> <field name="OID">harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="6!J?[c)l#ii*_{;b}|yf"><field name="TEXT">1</field></block></value></block></statement></block></next></block></statement></block> !
Und als script:
var timeout;
if (getState("hm-rpc.0.MEQ0165864.2.STATE").val == true) {
setState("harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn"/*Onkyo_AV_Receiver:PowerOn*/, '1', true);
// Bei kontrolle schalter = AN kein delay schalte
} else if (getState("hm-rpc.0.MEQ0165864.2.STATE").val == false) {
// Bei kontrolle schalter = AUS schalte mit delay
timeout = setTimeout(function () {
setState("harmony.0.Woonkamer.Onkyo_AV_Receiver.PowerOn"/*Onkyo_AV_Receiver:PowerOn*/, '1', true);
}, 1000);
}
Pass aber bitte auf dies ist nur ein teil der loesung naemlich logik ueberpruefe den statu der steckdose und schalte demnach den verstaerker.
Jetzt musst du noch:
Bestimmen wie du dieses script startest, z.b. eine variable anlegen welche due mit scene adapter auf true setzt. Javascript reagiert dan z.b. auf diese variabele
Wen in deiner scenen logic auch das einschalten der steckdose aufgenommen ist, muss dieses script natuerlich davor laufen 🙂
Da ich deine situation nicht genau kennen etwas schwierig genau die schritten oder ein end-to-end loesung als beispiel zu geben.
Ich gehe jetzt mal dumweg davon aus das dus alles mit scenen geschaltet has und nur logic fuer delay einschalen verstaerker hinzufuegen moechtest ?
Es waere auch logissch die stekdose in der ElseIf einzubauen.
Den trigger/art von script und in welche kombination haengt von deinen wunsch und realisierung ab 🙂
Also:
Mach dir einen plan wie deine scenario aussieht und unter welchen bedingungen was gemacht werden soll
Ist dir egal op script/blockly oder scene oder hast du da wuensche ? Wen ja macht dir nen plan was wohl und nicht geht z.b. scene und anders geloest werden muss (wie if/then delay)
Definieren was dein trigger sein wird, ein script muss auch gestartet werden das geht z.b. per variabelen aenderung,
PS: mit scene kannst du auch ein script an oder ausschalten, z.b. die blocke welche ich gepostet haben.
Dan verlegtst du das einschalten des receiver auf ein script, diesen script activierst du mit deiner scene und am ende noch block hinzufuegen script wieder aus.
habe nochmal nachgedacht ueber den ping, das wird nicht gehen.
Bei mir getested und wie befuerchtet is der ping schneller da als das onkyo auf ein IR signal reagiert. Da er aber immer glaich lang zum starten brauch ist ein fester delay schon OK denke ich mal ?
Greetz,
Dutch