MNH Gedankensprudel

nicht nur ein stilles Wasser

Raw code in pilight gui mit eigenen Protokoll 2

01.10.15 (Allgemein)

Nun komm der in diesen Beitrag bereits versprochene zweite Teil…

On Off SoOONY DAS GEHT*

Ganz so arg müssen wir uns nicht ärgern. Doch leider wird es auch nicht mit einen einfachen on/off funktionieren. Damit ihr nicht noch ZWEIHUNDERT PULS bekommt mache ich mal weiter.

nach einen ausführen der install.sh sollte das Protokoll zwar schon auswählbar und kompilierbar sein doch ein:

$ sudo pilight-send -H
Usage: pilight-send -p protocol [options]
-H --help display this message
-V --version display version
-p --protocol=protocol the protocol that you want to control
-S --server=x.x.x.x connect to server address
-P --port=xxxx connect to server port
-F --settings settings file
The supported protocols are:
brennenstuhl Brennenstuhl Comfort
byebyestandbye Bye Bye Standbye Switches
clarus_switch Clarus Switches
cleverwatts Cleverwatts Switches
coco_switch CoCo Technologies Switches
cogex Cogex Switches
dio_switch D-IO Switches
elro_ad Elro Home Easy Advanced Switches
elro_hc Elro Home Control Switches
elro_he Elro Home Easy Switches
generic_dimmer Generic Dimmers
generic_screen Generic Screens
generic_switch Generic Switches
generic_weather Generic Weather Stations
home_easy_old Old Home Easy Switches
impuls Impuls Switches
intertechno_old Old Intertechno Switches
intertechno_switch Intertechno Switches
kaku_dimmer KlikAanKlikUit Dimmers
kaku_screen KlikAanKlikUit Screens
kaku_screen_old Old KlikAanKlikUit Screens
kaku_switch KlikAanKlikUit Switches
kaku_switch_old Old KlikAanKlikUit Switches
nexa_switch Nexa Switches
openweathermap Open Weather Map API
pollin Pollin Switches
program Start / Stop / State of a program
quigg_switch Quigg Switches
raw Raw Codes
relay GPIO Connected Relays
rev1_switch Rev Switches v1
rev2_switch Rev Switches v2
rev3_switch Rev Switches v3
selectremote SelectRemote Switches
silvercrest Silvercrest Switches
unitech Unitech Switches
wunderground Weather Underground API
x10 x10 based devices

liefert leider noch nicht den gewünschten erfolg, wie wir unter „The supported protocols are“ sehen.

Quelltext

Fangen wir also mal an, uns den Quelltext anzuschauen. Also Zurück zu bhc9938d.c und dort die Init Funktion. Den dort müssen wir noch eigne dinge bekanntgeben.

beschäftigen wir uns zunächst mit printHelp hier setzen wir einen Funktionszeiger in diesen Fall auf eine Funktion die bhc9938dPrintHelp heißt. Ich würde hier ein ähnliches Namensschema vorschlagen also protokollnameFunktion um Namenskonflikte zu vermeiden.
mit einer pasenden Methode sind wir also schon so weit Hilfetexte auszugeben:

was noch fehlt sind die Parameter zum steuern und natürlich das Senden dafür ergänzen wir wieder die Initfunktion

 

options_add rufe ich hier gleich dreimal auf, einmal für unit eine einfache numerische ID in meinen Fall von 1-3, und jeweils einmal für on und off.
Desweiteren noch ein Pointer auf die bhc9938dCreateCode funktion die dem Protokoll das eigentliche leben Einhaucht.
Der Komplette Kode schaut bei mir dann so aus:

 

 

 

 

 

 

*Mus man gesehen haben um das zu verstehen

Carschrotter
ist leidenschaftlicher Technik Fan beigester von allen was mit dem Web zu tuen hat und Vollblut Nerd. Deshalb war auch sein Ausbildung zum Fachinformatiker ein logischer schritt.

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre prompt="" escaped="" class="" title="" data-url=""> <span class="" title="" data-url="">