NEWS
Wie kann ich mit Blockly Variablen Ansagen lassen?
-
Hallo,
ich möchte gerne mit Blockly mehrere Werte aus Variablen in ANsagen lassen.
Beispiel: Die Außentemperatur zur Zeit und danach die Maximale Temperatur dieses Tages gemeldet.
Nun fehlt mir der Ansatz dafür.
Ich habe schon einige Varianten durchgespielt, aber leider bisher nicht die richtigen Bausteine gefunden:
Wenn 10:00 Uhr dann -> Wert aus Variabble hinter folgenden festen Text schreiben: Die Außentemperatur beträgt "…."
Danach -> Wert aus Variable Max Temperatur hinter den Oben genannten Text
Und zu guter letzt dann die Übergabe in Sayit...
Vielleicht kann jemand mal seinen Ansatz posten damit ich weiter komme... Ich freue mich wenn jemand weiterhelfen kann...
Gruß Sven
-
Ich nochmal:-)
nutzt niemand so etwas in Blockly wo ich ein wenig anschauen kann?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Ich nochmal:-)
nutzt niemand so etwas in Blockly wo ich ein wenig anschauen kann?
Gruß Sven
Gesendet von iPhone mit Tapatalk `
in etwa sowas ? (setzen der variable musst du noch hinzufuegen, per cron wird immer im 10 uhr die meldung generiert geht auch in einem job zu zeiten welche du willst, ich habe anstatt sayit pushover hier genommen:
den cron blok kannst du die zeiten einstellen:
z.b.
im spoiler der code, speicher als tekst und dan importieren damit has du dein beispiel:
! ````
<block xmlns="http://www.w3.org/1999/xhtml" type="schedule" id="1F2,Sd?j3LNl;/Sw[V0B" x="162.99999999999977" y="112.99999332427961"><field name="SCHEDULE">* 10 * * *</field>
<statement name="STATEMENT"><block type="pushover" id="3ZVQKPn@M43cEV/1@fE?"><field name="PRIORITY">0</field><value name="MESSAGE"><shadow type="text" id="I[+mn8:Rdlow*qLl9G5B"><field name="TEXT">text</field></shadow> <block type="text_join" id="LzeFaP2LLXvcc=E7Iegu"><mutation items="2"></mutation> <value name="ADD0"><block type="text" id="3OEsg#|NHjxZ`z_ve.%U"><field name="TEXT">Die Außentemperatur beträgt</field></block></value> <value name="ADD1"><block type="variables_get" id="aA*uk1Bexaccnx)Fj)3X"><field name="VAR">Max_Temperatur</field></block></value></block></value></block></statement></block>
! ````
edit hier der block zum setzen variable, du kannst die value of object id aber auch direct and den obigen block verkuepfen.
Kannst die temperatuur ja direct auslesen anstatt erst in eine varible:
edit 2:
so mal bisschen rumgespielt wollte sowieso noch was wieder mit sayit machen. Ich glaube das hier ist was du suchst ?
blockey sagt zwischen 9-18 jede stunde die jetzige temperatur an + die max des tages aus einer variable, diese musst du noch einen wert geben:
Code den du importieren kannst:
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="schedule" id="1F2,Sd?j3LNl;/Sw[V0B" x="88" y="38"><field name="SCHEDULE">* 9-18 * * *</field>
<statement name="STATEMENT"><block type="sayit" id="dVZU^j.JXhevKw~{6ykA"><field name="INSTANCE">.0</field>
<field name="LANGUAGE">de</field><value name="MESSAGE"><shadow type="text" id="F6o}j+6vwC7}V!090eAl"><field name="TEXT">text</field></shadow> <block type="text_join" id="LzeFaP2LLXvcc=E7Iegu"><mutation items="4"></mutation> <value name="ADD0"><block type="text" id="3OEsg#|NHjxZ`z_ve.%U"><field name="TEXT">Die Außentemperatur beträgt</field></block></value> <value name="ADD1"><block type="get_value" id="bag@b!dL_wV#9x~V,L|9"><field name="ATTR">val</field> <field name="OID">select ID</field></block></value> <value name="ADD2"><block type="text" id="an6ZrJHkBsBz#gA5B^:N"><field name="TEXT">die Maximale Temperatur dieses Tages war</field></block></value> <value name="ADD3"><block type="variables_get" id="Xy*HaS3XU0){s*k,(l}7"><field name="VAR">Max_Temperatur</field></block></value></block></value></block></statement></block></xml>
! ````
-
Hey danke, das probiere ich gleich mal aus und melde mich.
Vielen Dank Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Hey danke, das probiere ich gleich mal aus und melde mich.
Vielen Dank Gruß Sven
Gesendet von iPhone mit Tapatalk `
sag mal bescheit was rauskommt
Bin grade selber am spielen und glaube einen bug gefunden zu haben. Wen ich einen wert mit "-", also z.b. jetzige aussentemperatur -3, im script benutzte klappt das nicht. log:
javascript.0 2017-01-06 20:24:55.339 info Stop script script.js.Testing.Test_Blockly sayit.0 2017-01-06 20:24:34.811 error Cannot get file: received file is too short sayit.0 2017-01-06 20:24:34.742 info saying: Die Außentemperatur beträgt "-3
machen ich dasselber mit der Wohnimmertemperatur klappt das
Edit: eh komisch, jetzt geht es doch mit dem -3 grad …. egal
-
Hey Dutchman,
vielen Dank für deine Hilfe. Es funktioniert genau so wie du es geschrieben hast. Dabei habe ich festegestellt, das Ich fast alles so Ansagen / schicken lassen kann.
Allerdings geht eins bei mir nicht. Ich kann kein Json Objekt mitschicken. Also Einträge aus ICal lassen sich so nicht verschicken. Weißt du ob ich diese irgenwie in "lesbares wandeln" kann?
Hier das Telegramscript dür die DWD Nachrichten:
! schedule("* * * * *", function () {
! if (getState("dwd.0.warning.severity").val != 0) {
! sendTo("telegram", "send", {
! text: (['Achtung! Es gibt eine aktuelle Wetterwarnung! ',getState("dwd.0.warning.headline").val,' - ',getState("dwd.0.warning.description").val,' - ',getState("dwd.0.warning.begin").val,' bis ',getState("dwd.0.warning.end").val].join(''))
! });
! }
! });
! //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnNjaGVkdWxlJTIyJTIwaWQlM0QlMjJmYVFHSEREV3NEfiUzRnBNd0k4czdkJTIyJTIweCUzRCUyMjg4JTIyJTIweSUzRCUyMjYzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NIRURVTEUlMjIlM0UqJTIwKiUyMColMjAqJTIwKiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjIlNjB+JTVFZCUzQS5VKCUzQiUzRiUyNTFyWSouNnFDJTQwJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyMFJKUGxIMU1xSm8lMkN3ZzkqJTNEQTglMjMlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRU5FUSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyUypVJTJDQVYhM1RzMSUzQkklNUUuWjElMjV3aCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWR3ZC4wLndhcm5pbmcuc2V2ZXJpdHklM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMnpRUDkhUn55cWEhM21lRF8lM0F5Q0wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZWxlZ3JhbSUyMiUyMGlkJTNEJTIyJTVFaXR5UiUyQzgzViU3QmJELVJlM21Jby0lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlNUQU5DRSUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTE9HJTIyJTNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJNRVNTQUdFJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMilyQm0oJTQwU002JTYwQlhJTWQlMkNMJTVFSDYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRGllJTIwbWF4aW1hbGUlMjBBdSVDMyU5RmVudGVtcGVyYXR1ciUyMGJldHIlQzMlQTRndCUyMGhldXRlJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0X2pvaW4lMjIlMjBpZCUzRCUyMiU1QnNuM3glMkYlM0Ftdjl6RzhiaUxKLVcxJTIyJTNFJTNDbXV0YXRpb24lMjBpdGVtcyUzRCUyMjglMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJXaXUyQSpzY2MoeFJZMHhiJTJCJTNCQSUzQiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VBY2h0dW5nISUyMEVzJTIwZ2lidCUyMGVpbmUlMjBha3R1ZWxsZSUyMFdldHRlcndhcm51bmchJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyVS05RF9oaWwySCUyM19FbHExNmE3ISUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWR3ZC4wLndhcm5pbmcuaGVhZGxpbmUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQyJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyOS4lM0ElM0ElM0FjcktOLiUyNW4lN0QqRUxxJTJGLTYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFJTIwLSUyMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDMlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMl80RDNUd3A2QXc5JTdETmpQUWclNDBRZSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0V2YWwlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWR3ZC4wLndhcm5pbmcuZGVzY3JpcHRpb24lM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ0JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyJTNESjlOVmxwX2FsS19LJTYwa3dBKEtxJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMC0lMjAlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBREQ1JTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJ3NUp6eCU2MDFOS2JVREZfaWl4eVBVJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZHdkLjAud2FybmluZy5iZWdpbiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDYlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJCeExkYWhZTjAlNjBfJTJGJTIza29USCU0MFQ0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUyMGJpcyUyMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkFERDclMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJnZXRfdmFsdWUlMjIlMjBpZCUzRCUyMkJ+SVMlNjBZOXl2ViU2MFgzKCUyQk9jUCU1RTAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vkd2QuMC53YXJuaW5nLmVuZCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=Gruß Sven
-
Allerdings geht eins bei mir nicht. Ich kann kein Json Objekt mitschicken. Also Einträge aus ICal lassen sich so nicht verschicken. Weißt du ob ich diese irgenwie in "lesbares wandeln" kann? `
Kein dir ein beispiel geben wie ich einen MQTT JSON query auslese und die werte in variablen und log schreibe.
Input MQTT:
{ "Battery" : 255, "RSSI" : 7, "dtype" : "Lighting 2", "id" : "14879AA", "idx" : 2, "name" : "Deurbel_Voor", "nvalue" : 1, "stype" : "AC", "svalue1" : "OFF", "switchType" : "Doorbell", "unit" : 1}
Hieraus hohle ich mir die werte | val | name | und schreibe sie in variabelen + log:
//Read value at update on MQTT trigger on({id: RegExp("javascript.0.domoticz."), change: "any"}, function (obj) { var name = obj.name; var value = (getState(id).val); log (value); log (name); // log("request: " + 'http://192.168.1.134:8084/json.htm?type=command¶m=switchlight&idx=7&switchcmd=On'); });
Resultat:
20:38:41.433 [info] javascript.0 script.js.common.Domoticz_Switch: 1 20:38:41.433 [info] javascript.0 script.js.common.Domoticz_Switch: Domoticz Deurbel_Voor
Vielleicht hilft das ?