RedMatic - Telegrambot-home

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

RedMatic - Telegrambot-home

Beitrag von dhuuk42 » 17.10.2018, 04:29

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:
TelegramBot-Home.png
das Ganze mündet dann in einer Telegram Message, siehe hier:
IMG_BB7A95FC1C9E-1.jpeg
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

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: RedMatic - Telegrambot-home

Beitrag von hobbyquaker » 17.10.2018, 21:08

dhuuk42 hat geschrieben:
17.10.2018, 04:29
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.
gerne :-)
dhuuk42 hat geschrieben:
17.10.2018, 04:29
wie beispielsweise einen Sensorwert auszulesen. Welchen CCU Node muss ich dafür nehmen (node ccu-value, ccu-rpc...???)
Um Werte zu erhalten eignen sich die Nodes "Value" und "RPC Event".

dhuuk42 hat geschrieben:
17.10.2018, 04:29
Beispielsweise würde ich mir gerne jeden Morgen zu einer festen Uhrzeit die Außentemperatur meines Sensors senden lassen.
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.
dhuuk42 hat geschrieben:
17.10.2018, 04:29
Nur was könnt ihr mir empfehlen zur Einarbeitung damit ich helfen kann die Dokumentation um Basics zu erweitern? :)
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 :)

ptweety
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

Beitrag von ptweety » 17.10.2018, 23:27

hobbyquaker hat geschrieben:
17.10.2018, 21:08
dhuuk42 hat geschrieben:
17.10.2018, 04:29
Beispielsweise würde ich mir gerne jeden Morgen zu einer festen Uhrzeit die Außentemperatur meines Sensors senden lassen.
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.
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?
Dateianhänge
ratelimit.png

Hypnos
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

Beitrag von Hypnos » 18.10.2018, 00:59

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.

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

Re: RedMatic - Telegrambot-home

Beitrag von dhuuk42 » 18.10.2018, 09:09

Hey,

ich würde gerne folgendes umsetzen aber es läuft nicht. Wo ist der Fehler?
RedMaticError.png

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

Re: RedMatic - Telegrambot-home

Beitrag von dhuuk42 » 18.10.2018, 10:29

Hey,

also ein Wert kommt raus. Fehlermeldung bleibt aber. Wie muss ich das ganze jetzt in dem Change Node speichern?
RedMatic_TelegramMSG_Temperature.png
Grüße,

Mirco

Hypnos
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

Beitrag von Hypnos » 18.10.2018, 18:12

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):
2018-10-18_18h08_44.png
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ß

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

Re: RedMatic - Telegrambot-home

Beitrag von dhuuk42 » 18.10.2018, 19:42

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.

Smutje
Beiträge: 13
Registriert: 12.01.2011, 00:45
Wohnort: 8800 Lysos, District Paphos, Zypern
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: RedMatic - Telegrambot-home

Beitrag von Smutje » 20.10.2018, 08:04

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:
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...???)
habe ich für mich eine Lösung mit einem einfachen cgi Script geschaffen.
Bildschirmfoto 2018-10-20 um 08.08.46.png
Node Red flow
Bildschirmfoto 2018-10-20 um 08.09.53.png
Empfangenes Telegram
Bildschirmfoto 2018-10-20 um 08.09.53.png (15.42 KiB) 2799 mal betrachtet
Das cgi Script wird in einem node red http request aufgerufen und liefert im payload eine json Datenstruktur mit den Werten aus der HomeMatic.
Bildschirmfoto 2018-10-20 um 08.40.43.png
node red http request
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 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.

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;
Viel Spaß weiterhin mit node red und der HomeMatic

Smutje

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

Re: RedMatic - Telegrambot-home

Beitrag von dhuuk42 » 21.10.2018, 12:17

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 :)

Antworten

Zurück zu „RedMatic“