Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
Ich schaue mal ob ich die kommenden Tage was im Wiki dazu verfassen kann, hab aktuell leider wenig Zeit. Soviel aber vorab: Grundsätzlich müsst ihr FHEM auf dem Loxberry am laufen haben und dann die Daten per UDP an Loxone senden:
Hallo Orli,
vielen Dank erst einmal!
Ich habe es bereits geschafft Daten per UDP an die Loxone zu senden. Das klappt auch jetzt sehr gut.
Nach den Anleitungen wie du sie auch schon genannt hast stellt meine Basis her, aber leider nicht die speziellen Befehle für die VR200.
Ich habe daher die 99_myutils.pm um folgendes erweitert.
#VR200ToLoxone
#device:
#1 state
sub VR200ToLoxone($)
{
my ($device) = @_;
my $state=ReadingsVal("$device","state","-1");
if ($state eq "Idle") {
$state = "1";
}
if ($state eq "House Cleaning") {
$state = "2";
}
und in der FHEM.cfg diese Zeile ergänzt:
define VR200ToLoxone notify .*:state.* {VR200ToLoxone("$NAME")}
Ich werde jetzt noch die anderen Statis abfragen und denen dann entsprechende Zahlen vergeben. Sobald ich alle Stati habe, werde ich euch es wissen lassen.
Super Sache! Danke !!!!!
Ich habe es tatsächlich auch hinbekommen. Normalerweise schaue ich da nur neidisch zu was andere da hinbekommen :-)
Jetzt wäre es natürlich noch cool, wenn man den Robby auch über Loxone starten kann. In FHEM schaffe ich das schon mit dem Befehl "Set Robby startCleaning Eco". Über einen Http habe ich das aber noch nicht geschafft. Ich habe FHEM auf dem Loxberry laufen (momentan ohne user und PW). Ich habe dann erstmal im Browser folgendes versucht:
"http://loxberry:8083/fhem?cmd=set Robby startCleaning Eco"
und
"http://loxberry:8083/fhem&cmd=set Robby startCleaning Eco"
Beides will leider nicht funktionieren.
Hast du oder jemand anderes noch einen Tipp für mich?
hallo...
ich bin leider nicht wirklich weiter gekommen... habe leider wenig erfahrung was programmieren betrifft... wäre toll eine anleitung "schritt für schritt " zu bekommen... wäre toll wenn ihr dafür zeit findet!
besten dank!
lg
hm... wäre es möglich dass du die gesamten dateien hier postest... also ohne den anderen diversen dingen
ich nehme an man muss dann das ganze noch irgendwie auf seinen vr200 anpassen, oder?
sorry für die blöden fragen, beschäftige mich das erste mal mit programmierung und fhem!
lg
windflyer ich versuche mal die Tage eine Anleitung zu verfassen. orli
mit stateid sieht man nicht den genauen Stati.
Zb. House cleaning = 2 und auch Docking = 2
wenn man die State Name zuordnet hat man einen besseren Überblick was der Robi grad macht.
Folgende Stati habe ich bisher notiert:
Idle
House cleaning
Docking
Picked Up!
Paused: House Cleaning
windflyer ich versuche mal die Tage eine Anleitung zu verfassen. orli
mit stateid sieht man nicht den genauen Stati.
Korrekt, daher werte ich am Statusbaustein auch mehrere Eingänge aus (sind aber lang noch nicht alle Stati, nur die wichtigsten die bei mir immer wieder kommen):
- Edit files anklicken
- und mit folgendem Inhalt einfügen
!!!!!!!!!!!!!!ACHTUNG!!!!!!
Es ist nur der Ausschnitt um die Daten zur Loxone zu senden.
BITTE PASST EURE IP-ADRESSE AN
Code:
#VR200ToLoxone
#device:
#1 state
#2 error
sub VR200ToLoxone($)
{
my ($device) = @_;
my $state=ReadingsVal("$device","state","-1");
if ($state eq "Idle") {
$state = "1";
}
if ($state eq "House Cleaning") {
$state = "2";
}
if ($state eq "Docking") {
$state = "4";
}
if ($state eq "Picked Up!") {
$state = "8";
}
if ($state eq "Paused: House Cleaning") {
$state = "16";
}
UDP_Msg("192.168.178.77" , "7000" , "$device: $state");
my $error=ReadingsVal("$device","error","-1");
if ($error eq "ui_alert_invalid") {
$error = "1";
}
if ($error eq "ui_alert_dust_bin_full") {
$error = "2";
}
if ($error eq "ui_error_dust_bin_missing") {
$error = "4";
}
if ($error eq "ui_error_bumper_stuck") {
$error = "8";
}
if ($error eq "ui_error_navigation_nomotioncommands") {
$error = "16";
}
if ($error eq "ui_alert_busy_charging") {
$error = "32";
}
if ($error eq "ui_error_picked_up") {
$error = "64";
}
my $isDocked=ReadingsVal("$device","isDocked","-1");
if ($isDocked eq "true") {
$isDocked = "1";
}
if ($isDocked eq "false") {
$isDocked = "0";
}
my $isCharging=ReadingsVal("$device","isCharging","-1");
if ($isCharging eq "true") {
$isCharging = "1";
}
if ($isCharging eq "false") {
$isCharging = "0";
}
my $charge=ReadingsVal("$device","charge","-1");
my $action=ReadingsVal("$device","action","-1");
UDP_Msg("192.168.178.77" , "7000" , "$device: error: $error");
UDP_Msg("192.168.178.77" , "7000" , "$device: isDocked: $isDocked");
UDP_Msg("192.168.178.77" , "7000" , "$device: isCharging: $isCharging");
UDP_Msg("192.168.178.77" , "7000" , "$device: Charging: $charge");
UDP_Msg("192.168.178.77" , "7000" , "$device: Action: $action");
UDP_Msg("192.168.178.77" , "7000" , "$device: $state");
}
orli, vielen Dank ohne deinen Hinweis wäre ich wohl nicht drauf gekommen, die Signale an die Loxone zu leiten.
FHEM neustarten
shutdown restart
Jetzt müssten in der LoxConfig die UDPMessage ankommen. Entsprechend nach Wunschbaustein verbinden fertig.
Ich habe eine Error Benachrichtigung eingebaut. Die Fehlercodes der VR200 werden bereits in der FHEM ausgewertet und an die Loxone übergeben. Über einen Binärdekoder werden dann diese per Benachrichtigungsbaustein euch mitgeteilt.
Den aktuellen Status der VR200 fange ich nun auch wie Orli mit einem Statusbaustein ab. Vielen Dank an Orli.
@erenaygun Super, Besten Dank für die Anleitung...
ich werde diese gleich probieren und in den nächsten Tagen testen!
Du hast in deinem letzten Post scheinbar noch zwei Bilder angehängt... leider sind bei mir nur 2 Fragezeichen sichtbar!
Vielleicht eine sehr blöde Frage, aber wie kommt man zu den Befehlen mit denen nun Loxone den VR200 losfahren läßt bzw. pausiert, zur Basis schickt , usw...
1. FHEM so konfigurieren, dass der Miniserver ihn auch bedienen darf. In fhem gibt es seit einigen Versionen den Token, der dir wohl erstmal das Genick bricht (https://wiki.fhem.de/wiki/CsrfToken-HowTo). Ich hab bei mir die Token Authentifizierung für meinen Loxberry deaktiviert, da eh alles separiert in einem eigenen VLAN arbeitet. Ich bin mir aber sehr wohl bewusst, dass dies ein Risiko sein kann! Dazu hab ich in die Config folgendes eingebaut:
ganz mag es noch nicht klappen. das WebAPI ist glaube ich noch nicht erreichbar. Siehst du den Fehler?
Bei dem Attribut allowfrom gibt man die Start und die End-IP-Adresse mit Pipe-Zeichen getrennt ein oder? Werde das, sobald es funktioniert, noch weiter eingrenzen.
Kann der Miniserver http://loxberry auflösen? Versuch mal die IP des Loxberries in Loxone. Allowfrom definiert 1 IP Adresse, mit Pipe getrennt eine zweite. Du hast also die .1 und die .200 freigegeben aktuell :-) - vermutlich ist das dein Fehler.
Super! Jetzt geht es. Danke. Die IP muss aufgelöst eingegeben werden. Hätte ich auch drauf kommen können. Schließlich musste ich das bei meinen Sonos Lautsprechern über den Loxberry auch schon so machen.
Danke!!!!!
Hallo!
Die letzte Zeit habe ich mich intensiv damit beschäftigt meinen VR200 mit Hilfe von FHEM und eurer Anleitung an meinen Miniserver anzubindnen.
Leider ohne Erfolg!
Nun möchte ich meinen kompletten ‚Weg’ posten. Hoffentlich findet ihr den Fehler.
Ich bin nach der Beschreibung von Gast vorgegangen.
1: Loxberry aufsetzten und mit dem Miniserver vebinden
2: auf dem Loxberry das FHEM Plugin installieren
3: fhem.cfg file angepasst... so sieht nun meine Datei aus:
Code:
attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile /opt/loxberry/log/plugins/fhem/fhem.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB,WEBphone,WEBtablet has no basicAuth attribute.\
telnetPort has no password/globalpassword attribute.\
\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\
attr global statefile /opt/loxberry/log/plugins/fhem/fhem.save
attr global updateInBackground 1
attr global verbose 3
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
attr WEB editConfig 1
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog /opt/loxberry/log/plugins/fhem/fhem.log fakelog
define autocreate autocreate
attr autocreate filelog /opt/loxberry/log/plugins/fhem/%NAME.log
define eventTypes eventTypes /opt/loxberry/log/plugins/fhem/eventTypes.txt
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define VR200ToLoxone notify .*:state.*|.*:charge.*|.*:error.*|.*:isCharging.*|.*:isDocked.*|.*:action.* {VR200ToLoxone("$NAME")}
4: weiter gings mit der 99_myutils.pm ... diese sieht nun so aus:
Code:
##############################################
# $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;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
#VR200ToLoxone
#device:
#1 state
#2 error
sub VR200ToLoxone($)
{
my ($device) = @_;
my $state=ReadingsVal("$device","state","-1");
if ($state eq "Idle") {
$state = "1";
}
if ($state eq "House Cleaning") {
$state = "2";
}
if ($state eq "Docking") {
$state = "4";
}
if ($state eq "Picked Up!") {
$state = "8";
}
if ($state eq "Paused: House Cleaning") {
$state = "16";
}
UDP_Msg("192.168.0.77" , "7100" , "$device: $state");
my $error=ReadingsVal("$device","error","-1");
if ($error eq "ui_alert_invalid") {
$error = "1";
}
if ($error eq "ui_alert_dust_bin_full") {
$error = "2";
}
if ($error eq "ui_error_dust_bin_missing") {
$error = "4";
}
if ($error eq "ui_error_bumper_stuck") {
$error = "8";
}
if ($error eq "ui_error_navigation_nomotioncommands") {
$error = "16";
}
if ($error eq "ui_alert_busy_charging") {
$error = "32";
}
if ($error eq "ui_error_picked_up") {
$error = "64";
}
my $isDocked=ReadingsVal("$device","isDocked","-1");
if ($isDocked eq "true") {
$isDocked = "1";
}
if ($isDocked eq "false") {
$isDocked = "0";
}
my $isCharging=ReadingsVal("$device","isCharging","-1");
if ($isCharging eq "true") {
$isCharging = "1";
}
if ($isCharging eq "false") {
$isCharging = "0";
}
my $charge=ReadingsVal("$device","charge","-1");
my $action=ReadingsVal("$device","action","-1");
UDP_Msg("192.168.0.77" , "7100" , "$device: error: $error");
UDP_Msg("192.168.0.77" , "7100" , "$device: isDocked: $isDocked");
UDP_Msg("192.168.0.77" , "7100" , "$device: isCharging: $isCharging");
UDP_Msg("192.168.0.77" , "7100" , "$device: Charging: $charge");
UDP_Msg("192.168.0.77" , "7100" , "$device: Action: $action");
UDP_Msg("192.168.0.77" , "7100" , "$device: $state");
}
1;
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar