@qlink
Um auf deine erste Frage drauf einzugehen:
Ich persönlich benutze nicht mehr so viel Blockly, außer meiner alten Skripte.
Ich nutze schon seit längeren nur noch Node-Red.
Da würde man dann die http request node nehmen.
So ich habe dein Blockly etwas nachgebaut und den request Block durch meinen erstellten Block ersetzt.
Da der Message-Client immer etwas zurücksendet, wie zum Beispiel:
Systemfunction executing
bei einer Systemfunktion, hat der Block request eine Ausgabe, die man in einer Variable, hier Antwort, speichern kann.
Mein Block hat auch gewisse Eingabevariablen.
Außer json müsste eigentlich alles selbsterklärend sein.
Bei Json muss nämlich das in dieser Form eingeben werden:
{"type":"hotkey","payload":"F15"}
Mit dem json_generator kann man direkt auf die Werte zugreifen um den Typ (Modus) und den Payload (Inhalt) zu setzten.
Dann wird daraus dieser String erzeugt und er muss nicht eingegeben werden.
So würde das Beispiel aussehen, wenn man die screen_on Funktion nutzt:
Ich hoffe ich konnte dir hiermit weiterhelfen.
Um noch die anderen Funktionen des Message-Client zu sehen, kannst du dir die readme auf Github ansehen.
Hier das neue Beispiel Blockly:
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="ty4I6t;`3g2@Qo^cIGQS">type</variable>
<variable id="zkcwi`_:P|Y-H+w!P0U3">payload</variable>
<variable id="KJ`(],L1vH}H^)otDRqm">host</variable>
<variable id="TjJSy2#L3OUQDiT~:I97">json</variable>
<variable id="uo$)0f5gD`Gm=HjjOwa`">username</variable>
<variable id="h33;DbV.1JTf?hPM3#_4">password</variable>
<variable id="05cyd~/fXw)wYrY_9`j6">Antwort</variable>
</variables>
<block type="procedures_defcustomreturn" id="Z54Pq[qn:vy8Fw}n3A9]" x="613" y="63">
<mutation statements="false">
<arg name="type" varid="ty4I6t;`3g2@Qo^cIGQS"></arg>
<arg name="payload" varid="zkcwi`_:P|Y-H+w!P0U3"></arg>
</mutation>
<field name="NAME">json_generator</field>
<field name="SCRIPT">anNvbiA9IEpTT04uc3RyaW5naWZ5KHsNCiAgICB0eXBlIDogdHlwZSwNCiAgICBwYXlsb2FkIDogcGF5bG9hZA0KfSkNCg0KcmV0dXJuIGpzb247</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
<block type="procedures_defcustomreturn" id="H!?tgvif0E3`u4B,w{e1" x="588" y="113">
<mutation statements="false">
<arg name="host" varid="KJ`(],L1vH}H^)otDRqm"></arg>
<arg name="json" varid="TjJSy2#L3OUQDiT~:I97"></arg>
<arg name="username" varid="uo$)0f5gD`Gm=HjjOwa`"></arg>
<arg name="password" varid="h33;DbV.1JTf?hPM3#_4"></arg>
</mutation>
<field name="NAME">request</field>
<field name="SCRIPT">cmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKA0KICAgIChyZXNvbHZlLCByZWplY3QpID0+IHsNCiAgICAgICAgcmVxdWlyZSgicmVxdWVzdCIpKCJodHRwOi8vIiArIGhvc3QgKyAiOjgwODAvIiwgew0KICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsDQogICAgICAgICAgICBib2R5OiBqc29uLA0KICAgICAgICAgICAgaGVhZGVyczogew0KICAgICAgICAgICAgICAgICJBdXRob3JpemF0aW9uIjogYEJhc2ljICR7QnVmZmVyLmZyb20oYCR7dXNlcm5hbWV9OiR7cGFzc3dvcmR9YCkudG9TdHJpbmcoImJhc2U2NCIpfWAsDQogICAgICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoIjoganNvbi5sZW5ndGgsDQogICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIg0KICAgICAgICAgICAgfSANCiAgICAgICAgfSkub24oImRhdGEiLCAocmVzcG9uc2UpID0+IHsNCiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UudG9TdHJpbmcoKSkNCiAgICAgICAgfSkub24oImVycm9yIiwgKGVycm9yKSA9PiByZWplY3QoZXJyb3IpICk7DQogICAgfQ0KKQ==</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
<block type="variables_set" id="YqU71]Z+:=wA)?51:4%)" x="138" y="188">
<field name="VAR" id="05cyd~/fXw)wYrY_9`j6">Antwort</field>
<value name="VALUE">
<block type="procedures_callcustomreturn" id="C.@%1r4Dd)jcPQSno:Sr">
<mutation name="request">
<arg name="host"></arg>
<arg name="json"></arg>
<arg name="username"></arg>
<arg name="password"></arg>
</mutation>
<value name="ARG0">
<block type="text" id="[Rls=Dv(tX[~?,{I@=S{">
<field name="TEXT"></field>
</block>
</value>
<value name="ARG1">
<block type="procedures_callcustomreturn" id="%Jw---e/=/1p{vro~gUm">
<mutation name="json_generator">
<arg name="type"></arg>
<arg name="payload"></arg>
</mutation>
<value name="ARG0">
<block type="text" id="0%`5Ivayw4`)7fHe]/=/">
<field name="TEXT">systemfunction</field>
</block>
</value>
<value name="ARG1">
<block type="text" id="dh{WIfs1!eh`gC[LExVD">
<field name="TEXT">screen_on</field>
</block>
</value>
</block>
</value>
<value name="ARG2">
<block type="text" id="uufN7iZ[`pZzC=_jH+AS">
<field name="TEXT"></field>
</block>
</value>
<value name="ARG3">
<block type="text" id="82y)t{xcd!]EG?A-ts8?">
<field name="TEXT"></field>
</block>
</value>
</block>
</value>
</block>
</xml>
Beispiel