RedMatic - Telegrambot-home
Moderator: Co-Administratoren
RedMatic - Telegrambot-home
Hallo zusammen,
vorab vielen Dank für dieses grandiose Addon. Es hat unfassbar viele Möglichkeiten und ich habe für mich schon eine Liste erstellt was ich alles umsetzen will.
Mein erster Flow enthält direkt ein weiteren Node der bisher nicht in der Kompatibilitätsliste aufgeführt ist (node-red-contrib-telegrambot-home). Über diesen habe ich eine Erinnerung per Telegram erstellt die mir jeden Abend zu einer festen Uhrzeit gesandt wird um mich an die Aktivierung der Alarmanlage zu erinnern. Der Flow schaut wie folgt aus:
das Ganze mündet dann in einer Telegram Message, siehe hier:
Ich würde nun zum einen gerne den Flow erweitern um eine vorherige Abfrage ob die Alarmanlage bereits aktiviert ist, ist dies der Fall ist die Schleife beendet. Ist die Alarmanlage inaktiv soll die obere Prozedur aufgerufen werden.
Weiterhin will ich den Flow teilen bzw. dafür eine Anleitung erstellen und zum anderen natürlich gerne melden dass der Node telegrambot-home ohne Probleme funktioniert.
Geplant ist auch den Bot um weitere Funktionen erweitern. Beispielsweise würde ich mir gerne jeden Morgen zu einer festen Uhrzeit die Außentemperatur meines Sensors senden lassen. Allerdings scheitere ich an kleinsten Aufgaben wie beispielsweise einen Sensorwert auszulesen. Welchen CCU Node muss ich dafür nehmen (node ccu-value, ccu-rpc...???)
Da ich aus der bisherigen Dokumentation nicht schlau werde und es anderen vermutlich ähnlich geht würde ich gerne helfen. Nur was könnt ihr mir empfehlen zur Einarbeitung damit ich helfen kann die Dokumentation um Basics zu erweitern?
Grüße,
dhuuk42
vorab vielen Dank für dieses grandiose Addon. Es hat unfassbar viele Möglichkeiten und ich habe für mich schon eine Liste erstellt was ich alles umsetzen will.
Mein erster Flow enthält direkt ein weiteren Node der bisher nicht in der Kompatibilitätsliste aufgeführt ist (node-red-contrib-telegrambot-home). Über diesen habe ich eine Erinnerung per Telegram erstellt die mir jeden Abend zu einer festen Uhrzeit gesandt wird um mich an die Aktivierung der Alarmanlage zu erinnern. Der Flow schaut wie folgt aus:
das Ganze mündet dann in einer Telegram Message, siehe hier:
Ich würde nun zum einen gerne den Flow erweitern um eine vorherige Abfrage ob die Alarmanlage bereits aktiviert ist, ist dies der Fall ist die Schleife beendet. Ist die Alarmanlage inaktiv soll die obere Prozedur aufgerufen werden.
Weiterhin will ich den Flow teilen bzw. dafür eine Anleitung erstellen und zum anderen natürlich gerne melden dass der Node telegrambot-home ohne Probleme funktioniert.
Geplant ist auch den Bot um weitere Funktionen erweitern. Beispielsweise würde ich mir gerne jeden Morgen zu einer festen Uhrzeit die Außentemperatur meines Sensors senden lassen. Allerdings scheitere ich an kleinsten Aufgaben wie beispielsweise einen Sensorwert auszulesen. Welchen CCU Node muss ich dafür nehmen (node ccu-value, ccu-rpc...???)
Da ich aus der bisherigen Dokumentation nicht schlau werde und es anderen vermutlich ähnlich geht würde ich gerne helfen. Nur was könnt ihr mir empfehlen zur Einarbeitung damit ich helfen kann die Dokumentation um Basics zu erweitern?
Grüße,
dhuuk42
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: RedMatic - Telegrambot-home
gerne
Um Werte zu erhalten eignen sich die Nodes "Value" und "RPC Event".
Um zu einer bestimmten Uhrzeit eine Nachricht zu erzeugen die einen Homematic-Wert beinhaltet ist derzeit noch ein etwas umständlicherer Flow nötig (Speichern des Werts im "Context" und später - wenn die Nachricht erzeugt wird - herausholen aus dem Context mit einem Change Node). Ich überleg mal ob ich das noch durch einen neuen zusätzlichen Node vereinfachen kann, melde mich am Wochenende nochmal dazu.
Hmm, einfach mal Google Fragen, zu Node-RED im allgemeinen gibt es unzählige Tutorials, Howtos, Videos, Bücher, ...
Zu RedMatic bzw. CCU Nodes im speziellen einfach hier im Forum oder im Github Issue Tracker, ich helfe gern soweit es die Zeit erlaubt
-
- Beiträge: 522
- Registriert: 07.01.2017, 16:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 48 Mal
- Danksagung erhalten: 66 Mal
Re: RedMatic - Telegrambot-home
Wenn der Sensor regelmäßig Werte sendet (etwa alle x Minuten), dann kann man die doch auch in eine Schleife schicken und nur die letzte Nachricht in einem gewissen Zeitfenster durchlassen, oder?hobbyquaker hat geschrieben: ↑17.10.2018, 21:08Um zu einer bestimmten Uhrzeit eine Nachricht zu erzeugen die einen Homematic-Wert beinhaltet ist derzeit noch ein etwas umständlicherer Flow nötig (Speichern des Werts im "Context" und später - wenn die Nachricht erzeugt wird - herausholen aus dem Context mit einem Change Node). Ich überleg mal ob ich das noch durch einen neuen zusätzlichen Node vereinfachen kann, melde mich am Wochenende nochmal dazu.
-
- Beiträge: 460
- Registriert: 06.01.2018, 12:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 57 Mal
- Danksagung erhalten: 39 Mal
Re: RedMatic - Telegrambot-home
Aber ja, wenn man nur aller x Sekunden/Minuten/Stunden/... einen Wert haben will, kann man einfach den Trigger Node nehmen.
Das kommt auf die Anforderung an.
Wenn man zu einer Bestímmten Zeit, Bsp. 9 Uhr den letzten Wert haben will, braucht man 2 Flows:
value node --> change Node (speichert den Wert in einen context)
Inject Node (löst zu bestimmten Zeiten aus) --> change Node (hohlt den letzten Wert aus dem context) --> Wert senden
Theoretisch geht das noch einfacher, weil RedMatic die letzten Werte im globalen context cached.
Das kommt auf die Anforderung an.
Wenn man zu einer Bestímmten Zeit, Bsp. 9 Uhr den letzten Wert haben will, braucht man 2 Flows:
value node --> change Node (speichert den Wert in einen context)
Inject Node (löst zu bestimmten Zeiten aus) --> change Node (hohlt den letzten Wert aus dem context) --> Wert senden
Theoretisch geht das noch einfacher, weil RedMatic die letzten Werte im globalen context cached.
Re: RedMatic - Telegrambot-home
Hey,
ich würde gerne folgendes umsetzen aber es läuft nicht. Wo ist der Fehler?
ich würde gerne folgendes umsetzen aber es läuft nicht. Wo ist der Fehler?
Re: RedMatic - Telegrambot-home
Hey,
also ein Wert kommt raus. Fehlermeldung bleibt aber. Wie muss ich das ganze jetzt in dem Change Node speichern?
Grüße,
Mirco
also ein Wert kommt raus. Fehlermeldung bleibt aber. Wie muss ich das ganze jetzt in dem Change Node speichern?
Grüße,
Mirco
-
- Beiträge: 460
- Registriert: 06.01.2018, 12:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 57 Mal
- Danksagung erhalten: 39 Mal
Re: RedMatic - Telegrambot-home
Ich denke das geht bei dir nicht, da du vermutlich bei deinem Gerät die ACTUAL_TEMPERATURE nur auslesen und nicht setzen kannst.
Ich nehme dafür immer HQ WebUI (auch wenn das nicht mehr weiterentwickelt wird): Da sieht man das ACTUAL_TEMPERATURE RE (nur lesend) ist. Zum setzen muss man in meinem Beispiel SET_POINT_TEMPERATURE (RWR) nutzen (Ich weiß nicht was für eine Art von Gerät du hier hast).
Gruß
Ich nehme dafür immer HQ WebUI (auch wenn das nicht mehr weiterentwickelt wird): Da sieht man das ACTUAL_TEMPERATURE RE (nur lesend) ist. Zum setzen muss man in meinem Beispiel SET_POINT_TEMPERATURE (RWR) nutzen (Ich weiß nicht was für eine Art von Gerät du hier hast).
Gruß
Re: RedMatic - Telegrambot-home
Ich will die Temperatur auch nur setzen. Wo kann ich dem Node denn sagen dass er nur auslesen soll?!
Gerät ist ein WEMOS D1 den ich per CuxD eingebunden habe.
Gerät ist ein WEMOS D1 den ich per CuxD eingebunden habe.
-
- Beiträge: 13
- Registriert: 12.01.2011, 00:45
- Wohnort: 8800 Lysos, District Paphos, Zypern
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: RedMatic - Telegrambot-home
HomeMatic Werte per Telegram zu einer bestimmten Uhrzeit senden.
Um Daten von unserem Ferienhaus in Lysos, Zypern (http://lysos.info) abgreifen zu können
und um aus der Ferne die Klimaanlagen zu schalten nutze ich node red auf einem Raspberry 3.
Bezüglich deiner Frage:
Das cgi Script wird in einem node red http request aufgerufen und liefert im payload eine json Datenstruktur mit den Werten aus der HomeMatic.
Das Script ist auf der CCU in dem entsprechenden Verzeichnis abgelegt.
In der HomeMatic habe ich einen Favoriten mit dem Namen Visu angelegt.
In diesem Favoriten sind die entsprechenden Fühler für die Temperaturen und Feuchte abgelegt.
Das Script läßt sich durch Aufruf im Browser leicht testen:
http://192.168.10.100/addons/visu/cgi-bin/VisuDPs.cgi
Die IP Adresse durch die Adresse der eigenen CCU ersetzen.
Ergebnis:
{
"BidCos-RF.OEQ0349341:1.TEMPERATURE":19.500000,
"BidCos-RF.OEQ0349341:1.HUMIDITY":89,
"BidCos-RF.OEQ0578888:1.TEMPERATURE":23.000000,
"BidCos-RF.OEQ0578888:1.HUMIDITY":70,
"Quelle":"VisuDPs.cgi"
}
In einer node red function wird das Telegram aufbereitet und dem Telegram Sender übergeben.
Fertig! Funktioniert einwandfrei!
Ich benutze allerdings ein anderes Paket für Telegram:
node-red-contrib-telegrambot
4.3.0
Die Aufbereitung des Telegrams wird sich bei einem anderen node für telegram unterscheiden und ist anzupassen.
Viel Spaß weiterhin mit node red und der HomeMatic
Smutje
Um Daten von unserem Ferienhaus in Lysos, Zypern (http://lysos.info) abgreifen zu können
und um aus der Ferne die Klimaanlagen zu schalten nutze ich node red auf einem Raspberry 3.
Bezüglich deiner Frage:
habe ich für mich eine Lösung mit einem einfachen cgi Script geschaffen.Geplant ist auch den Bot um weitere Funktionen erweitern. Beispielsweise würde ich mir gerne jeden Morgen zu einer festen Uhrzeit die Außentemperatur meines Sensors senden lassen. Allerdings scheitere ich an kleinsten Aufgaben wie beispielsweise einen Sensorwert auszulesen. Welchen CCU Node muss ich dafür nehmen (node ccu-value, ccu-rpc...???)
Das cgi Script wird in einem node red http request aufgerufen und liefert im payload eine json Datenstruktur mit den Werten aus der HomeMatic.
Das Script ist auf der CCU in dem entsprechenden Verzeichnis abgelegt.
Code: Alles auswählen
#!/bin/tclsh
# Skript VisuDPs.cgi
#
# Liest die Kanäle und Datenpunkte der Kollektion "Visu"
# Gibt als Ergebnis eine json Datenstruktur mit dem
# Datenpunkt und dem jeweiligen Wert aus.
load tclrega.so
puts {Content-type: application/json}
puts {}
puts "{"
array set res [rega_script {
object oChannel;
object oDp;
string sChannelId;
string sDpId;
string Name;
var Value;
foreach(sChannelId, dom.GetObject("Visu").EnumUsedIDs())
{
oChannel = dom.GetObject(sChannelId);
foreach(sDpId, oChannel.DPs())
{
oDp = dom.GetObject(sDpId);
Name = oDp.Name();
Value = oDp.Value();
if (Value.VarType() == 4) {Value = '"' # Value # '"';}
WriteLine("\"" # Name # "\":" # Value # ",");
}
}
}]
puts -nonewline $res(STDOUT)
puts "\"Quelle\":\"VisuDPs.cgi\""
puts "}";
In diesem Favoriten sind die entsprechenden Fühler für die Temperaturen und Feuchte abgelegt.
Das Script läßt sich durch Aufruf im Browser leicht testen:
http://192.168.10.100/addons/visu/cgi-bin/VisuDPs.cgi
Die IP Adresse durch die Adresse der eigenen CCU ersetzen.
Ergebnis:
{
"BidCos-RF.OEQ0349341:1.TEMPERATURE":19.500000,
"BidCos-RF.OEQ0349341:1.HUMIDITY":89,
"BidCos-RF.OEQ0578888:1.TEMPERATURE":23.000000,
"BidCos-RF.OEQ0578888:1.HUMIDITY":70,
"Quelle":"VisuDPs.cgi"
}
In einer node red function wird das Telegram aufbereitet und dem Telegram Sender übergeben.
Fertig! Funktioniert einwandfrei!
Ich benutze allerdings ein anderes Paket für Telegram:
node-red-contrib-telegrambot
4.3.0
Die Aufbereitung des Telegrams wird sich bei einem anderen node für telegram unterscheiden und ist anzupassen.
Code: Alles auswählen
var t = msg.payload;
var m = "Temperatur aussen: " + t["BidCos-RF.OEQ0349341:1.TEMPERATURE"] + "°C";
m = m + "\r\nFeuchte aussen: " + t["BidCos-RF.OEQ0349341:1.HUMIDITY"] + "%rF";
msg.payload = {
"chatId": 6698xxxxx,
"type":"message",
"content":m
}
return msg;
Smutje
Re: RedMatic - Telegrambot-home
Smutje! Hammer Danke!
Kannst Du mir noch den Telegram Ausgangsnode zeigen? Also was da als Node Einstellungen drin sein muss?
Grüße,
Mirco
PS: Ich nutze auch zusätzlich die Telegram Palette die Du auch nutzt
Kannst Du mir noch den Telegram Ausgangsnode zeigen? Also was da als Node Einstellungen drin sein muss?
Grüße,
Mirco
PS: Ich nutze auch zusätzlich die Telegram Palette die Du auch nutzt