RP-Development 
/

 "Schatz, ich mach uns das Leben leichter"

CONNAIR

Vor einigen Jahren gekauft, dann in der Kiste verschwunden und nun doch wieder rausgeholt und aktiviert. Habe mich ein wenig damit beschäftigt und ein Modul geschrieben auf Basis von DevelommentModuleIntro, im speziellen dem zweistufigen Modell für Module.

Weitere Informationen über dieses Gateway, zum steuern von Funksteckdosen, erhaltet ihr immer noch bei Simple Solutions. Auch Firmwareupdates, sowie ein noch sehr interessantes Forum. Leider wird dieses Gateway nicht mehr hergestellt.

 

physisches Modul

00_CONNAIR.pm

logische Module 

10_CONNAIR_IT.pm; 10_CONNAIR_BRENN.pm

Das physisches Modul sendet die Schaltsequenzen, die von einem logischen Modul z.B. CONNAIR_IT übergeben werden. Es findet die IP-Adresse des CONNAIR-Gateways per Broadcast (auf Pi und Mac getestet) oder die IP-Adresse wird statisch angegeben. Auch können die LED und Netzwerkeinstellung am CONNAIR-Gateway gelesen und gesetzt werden, sowie ein Reset durchgeführt werden.

Die logischen Module erzeugen aus dem definierten Code für die entsprechende Funksteckdose die entsprechende Sequenz, die dem physischen Modul übergeben wird zum senden. Jede Funksteckdose hat ihre eigene Sequenz die entsprechend zusammengesetzt werden muss. In vielen Quellen wurde dies schon umgesetzt. Hier im speziellen für Intertechno Funksteckdosen im Modul 10_CONNAIR_IT.pm. Getestet mit PAR-1500 und IT-1500. Sowie für Funksteckdosen von Brennenstuhl RCS 1044 N im Modul 10_CONNAIR_BRENN.pm.

Als mögliche weitere logische Module habe ich vorgesehen:

  • CONNAIR_BAT 
  • CONNAIR_Elro 
  • CONNAIR_Vivanco 
  • CONNAIR_Xavax 

Aber nicht umgesetzt, da ich noch keine Geräte dazu habe, um es testen zu können. Sequenzen dazu, habe ich aber schon im Netz gesehen.

Erfahrungen und Problem

Leider hat mein ConnAir auch mit Firmware V014 das Problem, das es ab und zu mal sich nicht mehr meldet. Leide habe ich dafür keine richtige Abhilfe. Zwei Dinge habe ich aber eingerichtet, um diese Situation besser in Griff zu bekommen. Zu einem lasse ich Nachts 03:00Uhr ein Reset durchführen:

define connair_reset at *03:00:00 set connair Reset

Ein erfolgreiches Reset ist an dem durchgängigen Leuchten der blauen LED erkennbar. Diese bleibt bis zur nächsten Schaltsequenz. 

Des Weiteren habe ich den ConnAir direkt an eine USB Buche am Pi angeschlossen für die Stromversorgung. Von der Stromaufnahme ist dies kein Problem. Der Vorteil ist, macht der Pi ein Reboot, wird kurzzeitig die Spannung am USB unterbrochen. Damit wird ein stummer ConnAir durchaus wieder zum Leben erweckt. Das Reboot habe ich aber nicht automatisiert, dafür ist diese Methode doch etwas zu hart.

Das Finden der IP über Broadcast, habe ich nur unter Linux auf dem Pi und meinem Mac getestet. Da ifconfig auf unterschiedlichen Systemen, unterschiedliche Prints liefert, kann es sein, das es nicht überall funktioniert. Alternativ dann beim define die IP eingeben, die ihr natürlich kenne müsst.

Installation

Die Installation kann mit Fhem-Mitteln erfolgen. Dazu habe ich die Möglichkeiten, wie in http://www.fhemwiki.de/wiki/Update beschrieben benutzt, um Drittanbieter Updates durchzuführen. 

update all http://www.rp-dev.de/fhem/connair/controls_connair.txt

Installiert alle neuen Module bzw. führt ein Update durch.

update add http://www.rp-dev.de/fhem/connair/controls_connair.txt

Fügt das Repository zur Verwaltungsdatei FHEM/controls.txt hinzu. Somit wird es bei jedem Update mit berücksichtigt.

update list

Zeigt euch die Liste der Repositories an.

Weitere Hinweise zum update Befehl

Download

Für alle die die Module per Hand in das FHEM Verzeichnis kopieren möchten, hier die Dateien zum Download:

 

00_CONNAIR.pm

Define

define <name> CONNAIR <IP oder Netzwerkadapter>

Examples:
define connair CONNAIR eth0
define connair CONNAIR 192.168.0.100

Set

set <name> <value>

statusRequest
Ruft die aktuellen LED und Netzwerkeinstellungen ab. Refresh der Webseite durchführen nicht vergessen.
rawCommand
Sendet einen Sendesequenz an das CONNAIR-Gateway. z.B. value = TXP:0,0,12,11125,89,25,4,12,4,12,4,12,12,4,4,12,12,4,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,4,12,12,4,4,12,12,4,4,12,12,4,1,4,;
setAttr
Sendet alle Attribute für LED- und Netzwerkeinstellungen. Hinweis: Die Netzwerkeinstellungen werden erst nach Reset aktiv. Bei Änderung eines Attributes, wird dies auch ausgelöst.
Reset
Löst ein Reset am CONNAIR-Gateway aus. Ist z.B. notwendig, wenn Netzwerkeinstellungen geändert wurden.

Get

BlueLED | BlueLED_Brightness | LED1 | LED2 | DHCP | IP | Mask | DNS_Primary | DNS_Secondary | Gateway | System_Name
Gibt den Wert der LED- und Netzwerkeinstellung des CONNAIR-Gateways zurück.
ifconfig
get <name> ifconfig <value>
Gibt die Netwerkinformation des Host zurück. value = Netzwerkadapter
z.B. get connair ifconfig eth0
CONNAIR_IP
get <name> CONNAIR_IP <value>
Gibt die IP-Adresse des CONNAIR-Gateways zurück, welches über Broadcast gefunden wurde. value = Netzwerkadapter
z.B. get connair CONNAIR_IP eth0

Attributes

BlueLED | BlueLED_Brightness | LED1 | LED2 | DHCP | IP | Mask | DNS_Primary | DNS_Secondary | Gateway | System_Name
Setzt oder löscht den Wert der LED- und Netzwerkeinstellung des CONNAIR-Gateways. Nach Bearbeitung wird der neue Wert an das CONNAIR-Gateway gesendet. 
Hinweis die Netzwerkeinstellung wird erst nach Reset aktiv.
keepalive
Liest nach einer Zeit (in Sekunden, default 300s = 5min) die Werte vom CONNAIR-Gateway. It kein Lesen möglich, geht der Status auf disconnected. Anschließend wird versucht über ein Broadcast das CONNAIR-Gateway wieder zu finden.
do_not_notify
loglevel
do_not_send_commands
Verhindert das senden von Schaltsequenzen an das CONNAIR-Gateway. KeepAlive und Broadcast wird davon nicht beeinflusst. 
wait_until_next_access 
Wartezeit bis zum nächsten http Request (in Sekunden, default 1s). Ist nötig, damit das ConnAir auch Zeit hat zum antworten. 

Readings

state
initialized; disconnected; connected

Internals

BcastInfo_FW
Firmwarestand über Broadcast (V014)
BcastInfo_MC
Herstellerbezeichnung über Broadcast (ConnAir433)
BcastInfo_VC
Hersteller über Broadcast (Simple Solution)
HOST_Broadcast
Broadcastadresse des Host (z.B. 192.168.0.255)
HOST_IP
IP-Adresse des Host (z.B. 192.168.0.4)
HOST_Mask
Subnetmaske des Host (z.B. 255.255.255.0)
connair_Firmware
Firmware ermittelt aus Webinterface
connair_LED_BlueLED
Funktion der blauen LED
connair_LED_BlueLED_Brightness
Helligkeit der blauen LED
connair_LED_LED1
Funktion der LED1
connair_LED_LED2
Funktion der LED2
connair_Network_DHCP
Netzwerkeinstellung DHCP
connair_Network_DNS_Primary
Netzwerkeinstellung primaerer DNS
connair_Network_DNS_Seconary
Netzwerkeinstellung sekundaerer DNS
connair_Network_Gateway
Netzwerkeinstellung Gateway
connair_Network_IP
Netzwerkeinstellung IP-Adresse
connair_Network_Mask
Netzwerkeinstellung Subnetmaske
connair_Network_System_Name
Netzwerkeinstellung Stystem Name

10_CONNAIR_IT.pm

Define

define <name> CONNAIR_IT <housecode> 
housecode = [A-P][1-16]
Examples:
define lamp CONNAIR_IT J10

Set

set <name> <value> 
value kann folgende Werte haben: on off
Examples:
set lamp on
set lamp1,lamp2,lamp3 on
set lamp off

Get

N/A

Attributes

IODev
Setzt das IO oder das physische Device welches zum Senden der Signale an dieses logische Device verwendet werden soll (Beispielsweise CONNAIR). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte physische Device zu, das Daten von diesem Typ empfangen kann. Das Attribut IODev muss nur gesetzt werden, wenn mehr als ein physisches Device fähig ist Signale von diesem logischen Device zu empfangen.
eventMap
do_not_notify
dummy
Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale absetzen. Zugehörige notifys werden ausgeführt wenn das Signal empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web Frontend getriggert wird.
loglevel
ignore
Ignoriere dieses Gerät, beispielsweise wenn es dem Nachbar gehört. Das Gerät wird keine FileLogs/notifys triggern, empfangene Befehle werden stillschweigend ignoriert (es wird kein Funksignal gesendet, wie auch beim dummy Attribut). Das Gerät wird weder in der Device-List angezeigt (es sei denn, es wird explizit abgefragt), noch wird es in Befehlen mit "Wildcard"-Namenspezifikation (siehe devspec) erscheinen. Es kann mit dem "ignored=1" devspec dennoch erreicht werden.

Readings

state
on; off

10_CONNAIR_BRENN.pm

Define

define <name> CONNAIR_BRENN <housecode> 
housecode = 1000010000 (Stelle 1-5 ist DIP-Schalter 1-5; Stelle 6-10 ist DIP-Schalter A-E; siehe auch Bedienungsanleitung) 
Examples:
define lamp CONNAIR_BRENN 1000010000

Set

set <name> <value> 
value kann folgende Werte haben: on off
Examples:
set lamp on
set lamp1,lamp2,lamp3 on
set lamp off

Get

N/A

Attributes

IODev
Setzt das IO oder das physische Device welches zum Senden der Signale an dieses logische Device verwendet werden soll (Beispielsweise CONNAIR). Hinweis: Beim Start weist FHEM jedem logischen Device das letzte physische Device zu, das Daten von diesem Typ empfangen kann. Das Attribut IODev muss nur gesetzt werden, wenn mehr als ein physisches Device fähig ist Signale von diesem logischen Device zu empfangen.
eventMap
do_not_notify
dummy
Setzt das Attribut dummy um Devices zu definieren, die keine Funksignale absetzen. Zugehörige notifys werden ausgeführt wenn das Signal empfangen wird. Wird beispielsweise genutzt um auf Code eines Sender zu reagieren, dennoch wird es auch dann kein Signal senden wenn es im Web Frontend getriggert wird.
loglevel
ignore
Ignoriere dieses Gerät, beispielsweise wenn es dem Nachbar gehört. Das Gerät wird keine FileLogs/notifys triggern, empfangene Befehle werden stillschweigend ignoriert (es wird kein Funksignal gesendet, wie auch beim dummy Attribut). Das Gerät wird weder in der Device-List angezeigt (es sei denn, es wird explizit abgefragt), noch wird es in Befehlen mit "Wildcard"-Namenspezifikation (siehe devspec) erscheinen. Es kann mit dem "ignored=1" devspec dennoch erreicht werden.

Readings

state
on; off