NEWS
Alarmmeldung wenn Raumtemperatur unter einen bestimmten Wert fällt
-
Hallo!
Leider wird hin und wieder mal vergessen die Fenster nach dem Lüften im Bad
zu schließen. Ich brauche unbedingt die Möglichkeit kostenlos eine Nachricht zu erhalten,
wenn die Temperatur z.B. unter 18 Grad fällt. Soll als Erinnerung fungieren, damit man an das offene Fenster denkt. In den Räumen sind die Homatic-Thermostate vorhanden.
Kann mir jemand helfen, wie ich das hier einrichten kann.
Geht das im Zusammenhang mit einer Fritzbox ggf. ohne sich irgendwo extra anzumelden?
Nutze homedroid und iobroker.vis App.
Ccu2, Fritzbox 7580, Cubie, Android
-
Das ist relativ einfach zu lösen.
Mit Blockly über Skripte kannst du dir das zusammenbauen.
Brauchst dafür dann noch den EMail- oder Telegram-Adapter. Abfrage von Fenster AUF sollte auch noch rein:
1146_unbenannt.jpg -
Da ich das Programm blockly nicht kenne und eigentlich auch hier noch etwas neu bin,
hilft mit die Beschreibung nicht so wirklich weiter.
Gehts auch ohne blockly?
Oder kann mir jemand etwas zur Verfügung stellen, wo ich grob gesagt nur noch die entsprechende ID
vom Thermostat einsetzen muss und die Temperatur ab die eine Benachrichtigung erfolgen soll.
Für Hilfe wäre ich dankbar, bin kein Linux Spezi daher ist es schwer für mich nur mit einem Stück Script irgendwas ohne weitere Beschreibung umsetzen zu können.
-
Gehts auch ohne blockly? `
Mit Javascript?
on({ id: /hm-rpc.*.TEMPERATURE/, ack : true, change: "lt", valLt: 18, oldValGe: 18 }, function(obj) { sendTo('telegram.0', { text: "Temperatur ist zur niedrig.", disable_notification: true } ) } );
Ist jetzt nur mal ein Beispiel, ich habe oben eine RegEx verwendet die evtl. zu viel mit einschließt.
Grüße, Jens
-
… eine Nachricht zu erhalten, wenn die Temperatur z.B. unter 18 Grad fällt. `
Der Adapter iobroker.telegram muss installiert sein:on({id: 'idBadTemperatur', valLt: 18, oldValGe: 18}, function() { sendTo('telegram.0', 'Temperatur im Bad ist unter 18°C !'); });
EDIT: Jens war schneller
-
Super…..vielen Dank für die schnellen Antworten.
Dann schaue ich mal ob ich das schaffe.
Gibt es zu "Telegram" etwas zu beachten, oder ist alles selbsterklärend?
Ich habe auch noch nie ein Script angelegt....kann mir das einer kurz erklären.
Einfach Code kopieren und einsetzen mit ID vom Thermostat der aktuell gemessenen Temperatur ?
-
Super…..vielen Dank für die schnellen Antworten.
Dann schaue ich mal ob ich das schaffe.
Gibt es zu "Telegram" etwas zu beachten, oder ist alles selbsterklärend?
Ich habe auch noch nie ein Script angelegt....kann mir das einer kurz erklären.
Einfach Code kopieren und einsetzen mit ID vom Thermostat der aktuell gemessenen Temperatur ? `
Du wählst den Tab "Skripte" aus, "Neues Skript" (neben dem Pluszeichen), "Einginetyp" auf "Javascript/js" stellen und Text einfügen. Hinterher Skript starten (auf rotes Play drücken -> wird grün und Pausezeichen wird dargestellt.)Wenn du "Skripte" öffnest, ist standartmäßig "Blockly" vorgewählt. Lohnt sich das mal anzuschauen, wenn man (wie ich) nichts von javascript versteht.
-
Und das dann nahtlos fortschreiben für jedes Thermostat?
-
Also ich scheitere am Script.
Ich dachte ich kann den code hier kopieren und bei Scripte einfügen.
Aber das Einfügen geht nicht weiß auch nicht wo.
Einginetyp" auf "Javascript/js" stellen …...diese Einstellung finde ich nicht.
Kann mir jemand eine Step by Step Anleitung geben? Was muss ich wo eingeben.
Telegram habe ich eingerichtet. Leuchtet grün.
Ich habe 5 Thermostate welche ich einrichten möchte also bei individuellen Temperaturabfall
z.B. Raum 1 Warnung bei 19 Grad
Raum 2 Warnung bei 18 Gran usw. entsprechende Warnung.
-
Einginetyp" auf "Javascript/js" stellen …...diese Einstellung finde ich nicht. `
Den Javascript-Adapter hast Du installiert ?Kennst Du http://www.iobroker.net/?page_id=156&lang=de ?
-
Ok, danke.
Werde mich mal daran versuchen.
-
Wie verbindet man nun das Script für 5 Thermostate?
Ich weiß nicht, wenn ich mich mit java nicht auskenne ob die Anleitung wirklich hilft.
Falls jemand eine einfache Kurzfassung hat oder eine Script
und mir verrät wie das genau geht, wäre es eventuell verständlicher.
Java hatte ich installiert und auch blockly entdeckt aber wie ich jetzt das Script dort einfügen kann
ist mir nicht klar.
-
Also ich scheitere am Script. `
Also mit einem müsstest Du Dich schon mal per Anleitung beschäftigen. Die Anleitungen sind eigentlich sehr gut und helfen einem schnell auf die Sprünge. Wenn Du nicht programmieren willst, versuch es doch einfach mal mit Blockly.
Grüße, Jens
-
Telegram habe ich eingerichtet. Leuchtet grün. `
Komplett installiert? Mit Bot usw… ? Gibt gutes youtube video dazu, ansonsten: https://github.com/ioBroker/ioBroker.te ... /README.md -
hier mit node-red. Schickt jetzt ein email - kannst aber natürlich auch andere Sachen machen (telegram zB).
Vorteil: ohne javascript, sensoren leicht hinzuzufügen````
[{"id":"27ba5893.2c68a8","type":"tab","label":"Alarm Message"},{"id":"6c52f0ab.fa037","type":"template","z":"27ba5893.2c68a8","name":"prepare message","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Achtung! Sensor '{{topic}}' mißt {{payload}}°C!","x":1031,"y":299,"wires":[["cbd6609a.60fc1"]]},{"id":"8f3e6a0.1339b98","type":"ioBroker in","z":"27ba5893.2c68a8","name":"","topic":"admin.0.ws333.Temp3","payloadType":"value","onlyack":"","func":"all","gap":"","x":134,"y":94,"wires":[["e5b37419.c12288"]]},{"id":"117f222c.98f5ee","type":"change","z":"27ba5893.2c68a8","name":"prepare data","rules":[{"t":"change","p":"topic","pt":"msg","from":"/","fromt":"str","to":".","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"payload[1].payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":833,"y":255,"wires":[["6c52f0ab.fa037"]]},{"id":"e5b37419.c12288","type":"function","z":"27ba5893.2c68a8","name":"Queue","func":"//how many items in queue?\nvar countmsg = 2;\n\nvar inmsg = msg;\nvar outmsg = { topic: inmsg.topic , payload: ""};\nvar ctx = this.context;\nvar msgs = ctx.get("aggmsgs")||[];\nvar topics = msgs[inmsg.topic]||[];\n\n\nif (topics.length > 0) {\n if (topics[topics.length-1].payload == inmsg.payload)\n return null;\n} \nif (topics.length == countmsg){\n topics.shift()\n}\n\ntopics.push(inmsg);\noutmsg.payload = topics;\n\nmsgs[inmsg.topic] = topics;\nctx.set("aggmsgs",msgs);\n\nif (topics.length == countmsg)\n return outmsg;\nelse\n return null;","outputs":1,"noerr":0,"x":329,"y":134,"wires":[["39bc3b4b.cfa814"]]},{"id":"39bc3b4b.cfa814","type":"switch","z":"27ba5893.2c68a8","name":"check left limit","property":"payload[1].payload","propertyType":"msg","rules":[{"t":"lte","v":"-3","vt":"num"}],"checkall":"true","outputs":1,"x":506,"y":144,"wires":[["55ca16d1.7d2098"]]},{"id":"55ca16d1.7d2098","type":"switch","z":"27ba5893.2c68a8","name":"check right limit","property":"payload[0].payload","propertyType":"msg","rules":[{"t":"gt","v":"-3","vt":"num"}],"checkall":"true","outputs":1,"x":666,"y":197,"wires":[["117f222c.98f5ee"]]},{"id":"ceb09b12.933508","type":"ioBroker in","z":"27ba5893.2c68a8","name":"","topic":"admin.0.ws333.Temp2","payloadType":"value","onlyack":"","func":"all","gap":"","x":136,"y":191,"wires":[["e5b37419.c12288"]]},{"id":"cbd6609a.60fc1","type":"e-mail","z":"27ba5893.2c68a8","server":"smtp.gmail.com","port":"465","name":"","dname":"","x":1219,"y":349,"wires":[]}]Edit sagt: Alarm jetzt nur einmalig bei Über- Unterschreiten des Limits (20 Zeilen für queue :o )
-
Moebius: danke…...mit der langen Zeile kann ich nichts anfangen.
Ich wüsste nicht wo ich was ändern muss um es an meine Thermostate anzupassen.
-
lobomau: ja, komplett installiert denke ich, da.ich sonst den Schlüssel nicht erhalten hätte und telegram sonst auch nicht grün leuchten würde…...gehe ich jedenfalls davon aus.
-
Moebius: danke…...mit der langen Zeile kann ich nichts anfangen.
Ich wüsste nicht wo ich was ändern muss um es an meine Thermostate anzupassen. `
Das ist ein node-red Flow.Den Code komplett in die Zwischenablage kopieren, node-red Reiter öffnen, wenn der Adapter node-Red installiert ist und hier den Code einfügen!
Doku lesen –> http://www.iobroker.net/docu/?page_id=4 ... _von_Flows
SO sieht der Code expandiert aus:
! ````
[
{
"id": "27ba5893.2c68a8",
"type": "tab",
"label": "Flow 4"
},
{
"id": "cadb8796.b7e2d8",
"type": "switch",
"z": "27ba5893.2c68a8",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "lt",
"v": "-3",
"vt": "num"
}
],
"checkall": "true",
"outputs": 1,
"x": 558,
"y": 87,
"wires": [
[
"24087720.583658"
]
]
},
{
"id": "509b48b0.9d7ed8",
"type": "ioBroker get",
"z": "27ba5893.2c68a8",
"name": "",
"topic": "",
"attrname": "payload",
"payloadType": "value",
"x": 350,
"y": 89,
"wires": [
[
"cadb8796.b7e2d8"
]
]
},
{
"id": "5fe9f5aa.ad95ac",
"type": "e-mail",
"z": "27ba5893.2c68a8",
"server": "smtp.gmail.com",
"port": "465",
"name": "",
"dname": "",
"x": 1221,
"y": 89,
"wires": []
},
{
"id": "99d18002.47aff",
"type": "template",
"z": "27ba5893.2c68a8",
"name": "prepare message",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "Achtung! Sensor '{{topic}}' mißt {{payload}}°C!",
"x": 1017,
"y": 89,
"wires": [
[
"5fe9f5aa.ad95ac"
]
]
},
{
"id": "605b30d.8b436d",
"type": "ioBroker in",
"z": "27ba5893.2c68a8",
"name": "",
"topic": "admin.0.ws333.Temp3",
"payloadType": "value",
"onlyack": "",
"func": "all",
"gap": "",
"x": 121,
"y": 54,
"wires": [
[
"509b48b0.9d7ed8"
]
]
},
{
"id": "bb5319dd.ef2e48",
"type": "ioBroker in",
"z": "27ba5893.2c68a8",
"name": "",
"topic": "admin.0.ws333.Temp2",
"payloadType": "value",
"onlyack": "",
"func": "all",
"gap": "",
"x": 119,
"y": 135,
"wires": [
[
"509b48b0.9d7ed8"
]
]
},
{
"id": "24087720.583658",
"type": "change",
"z": "27ba5893.2c68a8",
"name": "",
"rules": [
{
"t": "change",
"p": "topic",
"pt": "msg",
"from": "/",
"fromt": "str",
"to": "-",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 774,
"y": 88,
"wires": [
[
"99d18002.47aff"
]
]
}
]Wenn der Flow importiert ist, dann kann man die nodes (die "Steine" oder "Knoten") ändern. Gruß Pix
-
Ich habe das Script von MistyReblaus genommen
on({
id: /hm-rpc.*.TEMPERATURE/,
ack : true,
change: "lt",
valLt: 18,
oldValGe: 18
}, function(obj)
{
sendTo('telegram.0', {
text: "Temperatur ist zu niedrig.",
disable_notification: true
}
)
}
);
Ist es korrekt, dass ich für das Sternchen "*" die Id für die aktuelle ist Temperatur einfüge?
Muss ich für jedes Thermostat ein extra Script nehmen?
Oder einfach für das weitere Thermostat ergänzen?
Was.würde dann über telegram bei 18 Grad gemedet werden….also
außer " Temperatur ist zu niedrig " ?
Wird auch angezeigt welches Zimmer?
-
Also das Script läuft nicht.
In der 2, 3 und 4 Zeile scheint was falsch zu sein.