Funksteckdosen - ./RFSniffer Werte speichern
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Funksteckdosen - ./RFSniffer Werte speichern
Hallo zusammen,
derzeit schalte ich meine Steckdosen sowie Lichtschalter über das Exec Binding von Openhab...
Funktioniert auch alles so wie es soll.
Jetzt würde ich aber gerne wenn die Steckdosen oder Lichtschalter über die Fernbedienung entsprechend geschaltet werden, dass sich der Status in Openhab entsprechend auch ändert!
Wie stelle ich das an? Hat eventuell jemand schon so was realisiert und könnte mir den Code zur Verfügung stellen?
Vielen Dank.
Lieben Gruß, littlekenny
derzeit schalte ich meine Steckdosen sowie Lichtschalter über das Exec Binding von Openhab...
Funktioniert auch alles so wie es soll.
Jetzt würde ich aber gerne wenn die Steckdosen oder Lichtschalter über die Fernbedienung entsprechend geschaltet werden, dass sich der Status in Openhab entsprechend auch ändert!
Wie stelle ich das an? Hat eventuell jemand schon so was realisiert und könnte mir den Code zur Verfügung stellen?
Vielen Dank.
Lieben Gruß, littlekenny
Zuletzt geändert von littlekenny am 2. Jan 2019 03:09, insgesamt 1-mal geändert.
-
- Beiträge: 38
- Registriert: 29. Dez 2018 10:17
Re: Funksteckdosen - ./RFSniffer Werte speichern
Hallo,
nach all den Informationen, die ich bisher im Netz gefunden habe und auch durch eigene Erfahrungen, gibt es keine Möglichkeit bei 433mHz den Status abzufragen
nach all den Informationen, die ich bisher im Netz gefunden habe und auch durch eigene Erfahrungen, gibt es keine Möglichkeit bei 433mHz den Status abzufragen
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Re: Funksteckdosen - ./RFSniffer Werte speichern
Hallo,
hatte den Ansatz, das ich den Empänger am PI im Hintergrund laufen lasse und je nach empfangenen Code über die Rest API von Openhab den Status vom Item abändere von off auf on z.b.
Aber ich bin nicht der Programmier Profi, damit ich das umsetzten könnte...
Vielleicht hast du eine Idee über diesen Weg?
Lieben Gruß, littlekenny
hatte den Ansatz, das ich den Empänger am PI im Hintergrund laufen lasse und je nach empfangenen Code über die Rest API von Openhab den Status vom Item abändere von off auf on z.b.
Aber ich bin nicht der Programmier Profi, damit ich das umsetzten könnte...
Vielleicht hast du eine Idee über diesen Weg?
Lieben Gruß, littlekenny
-
- Beiträge: 5
- Registriert: 30. Dez 2018 13:17
Re: Funksteckdosen - ./RFSniffer Werte speichern
... bin auch an einer Lösung interessiert. Leider meldet sich hier niemenad:
viewtopic.php?f=15&t=1040
Habe auch eine Funklösung per 433MHz und möchte genau das angesprochenen Problem per Homematic-Binding lösen.
Scheint sich nur keiner damit aus zu kennen ...
viewtopic.php?f=15&t=1040
Habe auch eine Funklösung per 433MHz und möchte genau das angesprochenen Problem per Homematic-Binding lösen.
Scheint sich nur keiner damit aus zu kennen ...

- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Funksteckdosen - ./RFSniffer Werte speichern
Du brauchst ein Programm, welches den Funk auf 433MHz überwacht und die entsprechenden Pakete korrekt auswertet. Da die Sendeseite schon vorhanden ist, müsste die Empfangsseite eigentlich auch realisierbar sein, ich selbst nutze aber kein solchen Dosen und kann da sonst nichts beisteuern.
Es gibt von Sonoff ein 433MHz Gateway, welches mit Tasmota geflasht werden kann, eventuell könnte man das dazu nutzen (das kann dann sowohl senden als auch empfangen - an openHAB wird es dann über mqtt angebunden), ich hab aber keine Ahnung, ob es mit Intertchno kompatibel ist, oder auch mit anderen Funk-Systemen auf 433MHz.
Es gibt von Sonoff ein 433MHz Gateway, welches mit Tasmota geflasht werden kann, eventuell könnte man das dazu nutzen (das kann dann sowohl senden als auch empfangen - an openHAB wird es dann über mqtt angebunden), ich hab aber keine Ahnung, ob es mit Intertchno kompatibel ist, oder auch mit anderen Funk-Systemen auf 433MHz.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Re: Funksteckdosen - ./RFSniffer Werte speichern
Theoretisch müsste man ja nur diesen Code entsprechend anpassen und wenn z.B. Code 12345 empfangen wurde per Rest API von Openhab
(http://localhost:9080/CMD?mein_Item_Switch=OFF) den Status ändern, somit würde ja dann z.B. der Status von on auf off gesetzt werden!
Also dieser Teil vom Code:
Bei dem Teil: if (value == 0) müsste dann z.B. der Code 12345 rein und dann anstelle des printf("Unknown encoding\n"); die Ausführung
des Links für die Rest API zum ändern des Item Status.... (http://localhost:9080/CMD?mein_Item_Switch=OFF)
Aber habe keine Ahnung wie das funktionieren könnte!
(http://localhost:9080/CMD?mein_Item_Switch=OFF) den Status ändern, somit würde ja dann z.B. der Status von on auf off gesetzt werden!
Code: Alles auswählen
/*
RFSniffer
Usage: ./RFSniffer [<pulseLength>]
[] = optional
Hacked from http://code.google.com/p/rc-switch/
by @justy to provide a handy RF code sniffer
*/
#include "../rc-switch/RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
RCSwitch mySwitch;
int main(int argc, char *argv[]) {
// This pin is not the first pin on the RPi GPIO header!
// Consult https://projects.drogon.net/raspberry-pi/wiringpi/pins/
// for more information.
int PIN = 2;
if(wiringPiSetup() == -1) {
printf("wiringPiSetup failed, exiting...");
return 0;
}
int pulseLength = 0;
if (argv[1] != NULL) pulseLength = atoi(argv[1]);
mySwitch = RCSwitch();
if (pulseLength != 0) mySwitch.setPulseLength(pulseLength);
mySwitch.enableReceive(PIN); // Receiver on interrupt 0 => that is pin #2
while(1) {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
printf("Unknown encoding\n");
} else {
printf("Received %i\n", mySwitch.getReceivedValue() );
}
fflush(stdout);
mySwitch.resetAvailable();
}
usleep(100);
}
exit(0);
}
Code: Alles auswählen
if (value == 0) {
printf("Unknown encoding\n");
} else {
printf("Received %i\n", mySwitch.getReceivedValue() );
}
des Links für die Rest API zum ändern des Item Status.... (http://localhost:9080/CMD?mein_Item_Switch=OFF)
Aber habe keine Ahnung wie das funktionieren könnte!
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Re: Funksteckdosen - ./RFSniffer Werte speichern
Keine eine Idee wie man das anstellen könnte?
-
- Beiträge: 5
- Registriert: 30. Dez 2018 13:17
Re: Funksteckdosen - ./RFSniffer Werte speichern
Mit Homegear sollte es eigentlich ohne den ganzen RFsniffer-Aufwand funktionieren.
Die Pakete werden per Homegear ja schon empfangen, andere haben bereits mit Homegear auch das Empfangen einer FB hinbekommen, nur gibt es keinerlei Infos wie das gemacht wurde ...
Ich lese immer nur das es geht, aber wie ?
Die Pakete werden per Homegear ja schon empfangen, andere haben bereits mit Homegear auch das Empfangen einer FB hinbekommen, nur gibt es keinerlei Infos wie das gemacht wurde ...
Ich lese immer nur das es geht, aber wie ?
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Re: Funksteckdosen - ./RFSniffer Werte speichern
Hallo,
ich weiß schonmal, das es über die Rest API von openhab funktioniert und man einen curl Befehl absetzen kann an die API um den Status zu ändern.
Aber ich hab keine Ahnung wie ich das in die RFSniffer einbauen kann... Bin leider nicht der c++ Profi um das umzusetzen..
Vielleicht gibt es ja hier jemand der es könnte?
ich weiß schonmal, das es über die Rest API von openhab funktioniert und man einen curl Befehl absetzen kann an die API um den Status zu ändern.
Aber ich hab keine Ahnung wie ich das in die RFSniffer einbauen kann... Bin leider nicht der c++ Profi um das umzusetzen..
Vielleicht gibt es ja hier jemand der es könnte?
-
- Beiträge: 25
- Registriert: 31. Mai 2018 02:49
Re: Funksteckdosen - ./RFSniffer Werte speichern
Hallo zusammen,
habe es hinbekommen! Also für alle die es Interessiert.
Habe den Code der RFSniffer Datei wie folgt angepasst und wenn jedesmal der Code für das Anschalten oder Ausschalten empfangen wird, wird der Status des Items über die REST API von Openhab entsprechend angepasst. Sprich wenn ich den Funkschalter betätige und wenn ich den Schalter über Openhab steuere. So wird mir auch immer der richtige Status der Lampe in Openhab angezeigt.
Wenn noch jemand nen besseren Vorschlag hat, nehme ich diesen gerne entgegen.
habe es hinbekommen! Also für alle die es Interessiert.
Habe den Code der RFSniffer Datei wie folgt angepasst und wenn jedesmal der Code für das Anschalten oder Ausschalten empfangen wird, wird der Status des Items über die REST API von Openhab entsprechend angepasst. Sprich wenn ich den Funkschalter betätige und wenn ich den Schalter über Openhab steuere. So wird mir auch immer der richtige Status der Lampe in Openhab angezeigt.
Wenn noch jemand nen besseren Vorschlag hat, nehme ich diesen gerne entgegen.

Code: Alles auswählen
//g++ -DRPI ../rc-switch/RCSwitch.cpp sniff.cpp -o sniff -lwiringPi
/*
RFSniffer
Usage: ./RFSniffer [<pulseLength>]
[] = optional
Hacked from http://code.google.com/p/rc-switch/
by @justy to provide a handy RF code sniffer
*/
#include "../rc-switch/RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
RCSwitch mySwitch;
int main(int argc, char *argv[]) {
// This pin is not the first pin on the RPi GPIO header!
// Consult https://projects.drogon.net/raspberry-pi/wiringpi/pins/
// for more information.
int PIN = 2;
if(wiringPiSetup() == -1) {
printf("wiringPiSetup failed, exiting...");
return 0;
}
int pulseLength = 0;
if (argv[1] != NULL) pulseLength = atoi(argv[1]);
mySwitch = RCSwitch();
if (pulseLength != 0) mySwitch.setPulseLength(pulseLength);
mySwitch.enableReceive(PIN); // Receiver on interrupt 0 => that is pin #2
while(1) {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 283955) { //Code für das einschalten der Lampe
char cmd[120]= {0};
int x = 100;
snprintf(cmd,119,"curl http://localhost:8080/classicui/CMD?licht_flur=ON",x);
system(cmd);
printf("\nReceived %i\n", mySwitch.getReceivedValue() );
} else {
char cmd[120]= {0};
int x = 100;
snprintf(cmd,119,"curl http://localhost:8080/classicuiCMD?licht_flur=OFF",x);
system(cmd);
printf("\nReceived %i\n", mySwitch.getReceivedValue() );
}
fflush(stdout);
mySwitch.resetAvailable();
}
usleep(100);
}
exit(0);
}