Projekt: Apps für LaMetric-Time mit FHEM ansteuern
Als ich mir die LaMetric Time zugelegt habe, gab es noch gar keine Integration für FHEM oder andere Smart Home Systeme. Also musste ich das Modul selbst entwickeln. Seitdem nutze ich die LaMetric für Notifications aller Art. Nun werden Notifications aber nur kurz angezeigt und verschwinden dann sofort wieder. Zusatzinfos wie z.B. die aktuelle Raumtemperatur oder andere Daten kann man so nicht darstellen. Klar, man könnte alle paar Sekunden eine Notification ohne Ton versenden - aber wie nervig wäre das? Also zeige ich Dir in diesem Video, wie Du eine eigene private App für die LaMetric erstellst und diese mit Daten fütterst.
Was Du brauchst?
- Eine FHEM-Installation
- Eine LaMetric-Time
- Einen Developer-Account bei LaMetric
Video
Befehle
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
use POSIX;
use HttpUtils;
sub myLaMetricUtils_Initialize($$) {
my ($hash) = @_;
}
# Enter you functions below _this_ line.
sub sendToLametricApp($$) {
my ($icon, $text) = @_;
my $data = '{
"frames": [
{
"text": "' . $text . '",
"icon": "' . $icon . '",
"index": 0
}
]
}';
HttpUtils_NonblockingGet(
{
method => 'POST',
url => 'https://192.168.44.59:4343/api/v1/dev/widget/update/com.lametric.50fded02d728611fbcbeb7d29eea6244/1',
timeout => 3,
data => $data,
header => "X-Access-Token: Zj...WI0Nw==",
callback => sub($$$) {
#Log(1, "ERR: $_[1] DATA: " . length($_[2]));
}
}
);
}
1;
{sendToLametricApp('i7997', 'klappt')}
{sendToLametricApp('a5836', ReadingsVal('WZ_HeizungZentrale_Climate', 'measured-temp', '?') . '°C')}
define n_LaMetricDisplayFrame notify WZ_HeizungZentrale_Climate:measured-temp:.* {sendToLametricApp('a5836', ReadingsVal('WZ_HeizungZentrale_Climate', 'measured-temp', '?') . '°C')}
attr n_LaMetricDisplayFrame alias LaMetric: Aktuelle Temperatur im Wohnzimmer darstellen
attr n_LaMetricDisplayFrame group DeviceLogik
attr n_LaMetricDisplayFrame room Logik
Alternativ geht natürlich auch
define n_LaMetricDisplayFrame notify WZ_HeizungZentrale_Climate:measured-temp:.* {sendToLametricApp('a5836', $EVTPART1 . '°C')}
attr n_LaMetricDisplayFrame alias LaMetric: Aktuelle Temperatur im Wohnzimmer darstellen
attr n_LaMetricDisplayFrame group DeviceLogik
attr n_LaMetricDisplayFrame room Logik