Servus zusammen,
ich habe seit längerem von Hornbach ein 3er Pack Flamingo Funksteckdosen in Verwendung. Genauer gesagt schimpfen die sich SF-500S.
Bisher habe ich dafür eine NodeMCU + FS1000A mit einem teilweise selbst zusammengepfuschten Sketch und kann sie so problemlos als WEMO-Switch über Alexa schalten.
Nun hat sich meine räumliche Konstellation geändert, wodurch die NodeMCU nun direkt neben dem Raspberry liegt und somit ziemlich unnütz.
Daher wollte ich den FS-1000A einfach direkt an die GPIO des RPI 3 und die Steckdosen über Fhem schalten.
Leider bekomm ich das nicht hin und bräuchte an der Stelle Hilfe.
Wer an der Stelle schon eine einfache Lösung hat, nur her damit. Für alle die noch mehr Input wollen geht es weiter im Text.
Den Sketch auf der NodeMCU habe ich dank NewRemoteTransmitter.h von Randy Simmons zum laufen bekommen. Allerdings habe ich nirgends ein Pendant für Fhem gefunden oder war zu blöd dafür.
Ich habe es mittlerweile hinbekommen, den Sketch anzupassen und auf einen ArduinoNano zu flashen, an dem der FS-1000A hängt. Der Arduino steckt per USB am RPI. Geschaltet wird per ECMD/ECMDDevice von Fhem zum Arduino und dieser per Funk weiter zu den Steckdosen.
Nun stellt sich mir die Frage: Gibt es eine Möglichkeit diesen Typ Funksteckdosen per FS-1000A direkt am RPI zu schalten?
Bspw. indem ich das Skript des Arduino's (ohne ECMD/Serial) vom RPI über ein Notify ausführen lasse? Bisher bin ich immer am Kompilieren des Codes gescheitert.
Cheers,
fzzybllz
€dit:
Der Code den ich versende zum schalten ist vom Format her ein 8-stelliger Zahlencode, der für das ganze Set gilt und dann jeweils die ID 0-2 mit je dem State 0,1 zum schalten.
Diesen Thread habe ich ebenfalls gefunden: https://forum.fhem.de/index.php/topic,73806.0.html
ZitatBisher bin ich immer am Kompilieren des Codes gescheitert.
Welcher Code ? Der, der früher lief ? :-\
ZitatNun stellt sich mir die Frage: Gibt es eine Möglichkeit diesen Typ Funksteckdosen per FS-1000A direkt am RPI zu schalten?
Du könntest vielleicht in Deiner Konstellation pilight einsetzen. Ich würd mich aber eher für eine neue Transceiver-Hardware entscheiden.
ZitatDer Code den ich versende zum schalten ist vom Format her ein 8-stelliger Zahlencode, der für das ganze Set gilt und dann jeweils die ID 0-2 mit je dem State 0,1 zum schalten.
Was ist ein Zahlencode ? Hexcode ? gesamt 12 bits ? Dann würde es sich um ein IT-(Derivat ?) handeln.
Konkreter "Zahlencode" könnte uns erleuchten :D Und die Pulslängen dazu und man kann die Glaskugel unter dem Tisch lassen ;)
Zitat von: KölnSolar am 09 November 2017, 05:34:56
Welcher Code ? Der, der früher lief ? :-\
Richtig. Ich habe den NodeMCU Sketch angepasst und die Teile (Alexa + WLAN) nicht brauche rausgeworfen. Der Teil ließ sich auch kompilieren. Allerdings wird dort der NewTransmitter.h Code included. Dieser ließ sich nicht kompilieren.
Zitat von: KölnSolar am 09 November 2017, 05:34:56
Ich würd mich aber eher für eine neue Transceiver-Hardware entscheiden.
Würdest du mir hierzu erläutern aus welchem Grund? Welche Vorteile z.B. gegeben wären?
Zitat von: KölnSolar am 09 November 2017, 05:34:56
Was ist ein Zahlencode ? Hexcode ? gesamt 12 bits ? Dann würde es sich um ein IT-(Derivat ?) handeln.
Entschuldige bitte, eventuell spricht an der Stelle meine Unwissenheit. Ich hatte es Zahlencode genannt weil es eine 8-stellige Zahlenfolge ist (0-9), also kein Hexcode.
Zitat von: KölnSolar am 09 November 2017, 05:34:56
Konkreter "Zahlencode" könnte uns erleuchten :D Und die Pulslängen dazu und man kann die Glaskugel unter dem Tisch lassen ;)
In der zweiten Zeile steckt der "Code" und der "Pin".
In der Zeile mit "mySwitch.sendUnit(0,0);" steht die erste Zahl für die ID der Steckdose und die zweite Zahl 1=an, 0=aus
#include <NewRemoteTransmitter.h>
NewRemoteTransmitter mySwitch(57213164,13);
int incomingByte;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == '1') {
mySwitch.sendUnit(0,1);
delay(50);
}
else if (incomingByte == '0') {
mySwitch.sendUnit(0,0);
delay(50);
}
}
}
Uih, hätte ich bloß nicht in die Glaskugel geguckt :-[
Ich hatte halt in Richtung hexcode und IT_Protokoll spekuliert :o Was Du jetzt präsentierst, hat damit recht wenig zu tun. Du müsstest den Dezimalcode mal in eine Bitfolge aufschlüsseln, damit man überhaupt etwas interpretieren kann. Wie bist Du an den Code gekommen ?
Tja, das haste jetzt davon ;D
Und ich hatte mich schon ein bisschen gefreut gehabt, dass ich Funk-Steckdosen gefunden habe, die man zwar nicht direkt im Forum findet, aber dafür sehr günstig (3Stk. 10€), ordentlich verarbeitet, recht kompakt sind und ich am Ende einen übersichtlichen Code habe statt ewiger HexCodes.
Naja wie dem auch sei. Also prinzipiell könnte ich auch mit der aktuellen Lösung leben, da ich früher oder später sowieso noch einen ArduinoNano mit Cul433 zusammenbaue (liegt alles rum und wartet gerade auf den Zusammenbau). Dann könnte ich doch sicherlich dort den aktuellen Sketch "integrieren".
Aber jetzt hat mich der Reiz gepackt.
Zurück zu deinen Fragen:
An den Code bin ich über einen Arduino+433MHz Empfänger (Nicht der ganz Billige aus'm Set). So, jetzt kann ich dir leider den Sketch nicht präsentieren, weil ich nicht mehr weiß welcher das war. Das ist schon nen Weilchen her und damals habe ich vieles ausprobiert. Ich bin mir nicht sicher, aber es könnte der ShowReceivedCode (siehe Anhang) gewesen sein.
Das Empfangene sieht auf jeden Fall wie folgt aus:
Addr 57611264 unit 0 off, period: 259us.
Addr 57213164 unit 0 off, period: 258us.
Addr 57213164 unit 0 off, period: 259us.
Addr 57213164 unit 0 off, period: 260us.
Addr 57213164 unit 0 off, period: 259us.
Du hattest ausserdem nach Hexcode und Pulslängen gefragt. Evtl. hilft dir dabei die NewRemoteTransmitter.h (https://github.com/koffienl/attiny-kaku/tree/master/libraries/NewRemoteSwitch (https://github.com/koffienl/attiny-kaku/tree/master/libraries/NewRemoteSwitch)) weiter. Die binde ich ja ebenfalls mit ein. Allerdings ist der Inhalt für mich wie Böhmische Dörfer.
Naja, 3*Dose+FHEM=10 EUR gibt es ja auch so. Dafür macht aber dann der von mir empfohlene Transceiver Sinn, den Du ja zusammenbauen wirst. ;) Und mit dem kannst Du dann sniffen, was da konkret aus Deinem Arduino/NodeMCU kommt.
Zitat von: KölnSolar am 10 November 2017, 08:36:14
Naja, 3*Dose+FHEM=10 EUR gibt es ja auch so.
Kann ich zwar recherchieren, aber wärste trotzdem so nett mir da evtl. kurz nen Link oder Namen zu nennen?
Ich lese immer nur die Intertechno oder brennenstuhl, aber die liegen ja bei >20€.
Zitat von: KölnSolar am 10 November 2017, 08:36:14
Dafür macht aber dann der von mir empfohlene Transceiver Sinn, den Du ja zusammenbauen wirst. ;)
Wir reden vom SelbstbauCul mit CC1101 (433MHz) ?
Zitat von: KölnSolar am 10 November 2017, 08:36:14
Und mit dem kannst Du dann sniffen, was da konkret aus Deinem Arduino/NodeMCU kommt.
Alles klar. Kurz gesagt ist es aber auch egal was dabei raus kommt: Der Arduino bleibt in jedem Fall am RPI (Ob nun mit CC1101 oder FS-1000A, egal)?
Eine Lösung nur mit Transceiver und RPI ist nahezu unmöglich?
D.h. ich könnte dann zwar ein anderes Modul/Device in Fhem verwenden, aber genauso gut auch mein funktionierendes behalten?
Und an der Stelle gleich noch eine weitere Frage:
Kann ich in den Sketch vom CUL um meinen oben dargestellten Code erweitern und das void entspechend via serial ansprechen? Meine C-Kenntnisse sind leider quasi nicht existent.
Danke dir
z.B. Poll...in
Ja, SelbstbauCUL
Es KÖNNTE ein Ergebnis sein, dass es sich um ein bekanntes Protokoll handelt. Mit dem Transceiver würde dieses evtl. automatisch erkannt. Und ich glaube Du sendest nur, während eine "richtige" Integration für mich bedeutet, dass auch Signale z.B. von einer FB empfangen werden und somit ein "klarer" Status in FHEM ersichtlich ist.
ZitatKann ich in den Sketch vom CUL um meinen oben dargestellten Code erweitern und das void entspechend via serial ansprechen?
Das glaube ich eher weniger, da
ZitatMeine C-Kenntnisse sind leider quasi nicht existent.
Alles klar, dann setze ich nächste Woche mal den SelbstbauCul wieder zusammen und schau mir an was die NodeMCU da so versendet.
Korrekt, ich sende nur. Jedoch bedeutet für mich eine "richtige" Integration, dass die Funksteckdose mir ihren Status zurückgibt, also einen Rückkanal. Das ist aber ausgeschlossen, die Dosen arbeiten ja alle uni-direktional. Deine Lösung integriert ja lediglich die FB, als weiteres Schaltszenario und die Annahme, dass die Dose auch wirklich geschaltet hat, wenn ich das Signal versende.
Kurz um, ich habe sowieso keine FB im Einsatz, sondern lediglich Fhem bzw. Alexa. Zudem musste ich feststellen, dass eine der Dosen gerne mal "willkürlich" schaltet. Da scheint wohl in der Nachbarschaft ein ähnliches Signal versendet zu werden.
Ich melde mich mit neuen Erkenntnissen des CUL's dann wieder zurück