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:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
static voidbhc9938dPrintHelp(void){
printf("\t Ich bin ein Hilfreicher Text\n");
}
static void bhc9938dPrintHelp(void) {
printf("\t Ich bin ein Hilfreicher Text\n");
}
static void bhc9938dPrintHelp(void) {
printf("\t Ich bin ein Hilfreicher Text\n");
}
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. Des weiteren noch ein Pointer auf die bhc9938dCreateCode Funktion die dem Protokoll das eigentliche leben Einhaucht. Der Komplette Kode schaut bei mir dann so aus:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*
* File: bhc9938d.c
* Author: Michael Hegenbarth (carschrotter) <mnh@mn-hegenbarth.de>
*
* Created on 23. Januar 2015, 13:19
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>
#include "../../pilight.h"
#include "common.h"
#include "protocol.h"
#include "log.h"
#include "json.h"
#include "bhc9938d.h"
#ifndef MODULE
__attribute__((weak))
#endif
const char * indent = "ttttt";
typedef enum { OFF, ON, UNKNOWN=-1} switchState;
/*
* code all codes for on and off state from piligt debug
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.