Hard- und Software: 433 MHz Steckdosen ohne Root und Codes herausfinden

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Guten Tag an alle,

    ich bin neu hier! Natürlich habe ich bereits die Suchfunktion gesucht, allerdings habe ich keine Problemlösung gefunden.

    1a. Meine Situation (Hardware): Ich habe einen Raspberry Pi, an dem ein 4Ch-Relais und ein 433MHz Sender+Empfänger angeschlossen ist.

    1b. Meine Situation (Software): Ich habe wiringPi und 433Utils (von Ninjablocks - verwendet u.a. rcswitch). Genauso läuft Flask als Python Webframework.

    2. Was funktioniert: Mit dem von wiringPi mitgelieferten Programm "gpio" kann ich bereits die 4 Relais-Kanäle schalten. Das funktioniert mit Flask auch über das Netz mit http. Ferner kann ich lokal per ssh mein erstes Funksteckdosenset steuern.

    3. Hier meine Fragen:
    3.1: Ich würde alles ganz gerne ohne root laufen lassen. Wie kann ich die Codes für das funktionierende Funksteckdosenset (dieses hier: http://www.amazon.de/uniTEC-48111-Funkfernschalterset-Micro-silber/dp/B003BIERWU/ref=sr_1_15?ie=UTF8&qid=1376768110&sr=8-15&keywords=Funksteckdosen&tag=psblog-21 [Anzeige]) ohne root-Rechte verschicken? Bisher geht das nur mit "./codesend" unter root.
    3.2: Ich habe zusätzlich noch ein Funksteckdosenset von der Marke Quigg names GT-7000. Hier werden mir allerdings mit dem Programm RFSniffer keine Codes beim Drücken einer Taste angezeigt (das selbe Problem hatte ich damals bereits, als ich meinen Arduino mit dem Empfänger verbunden hatte und die Codes per rcswitch auslesen wollte). Woran kann das liegen? Woran liegt es ferner, dass man zum Auslesen der Codes (nun wieder mit dem funktionierenden Set) sehr nah an den Empfänger dran gehen muss (keine Antenne installiert)?

    Ich hoffe, die Fragen sind verständlich gestellt (in a nutshell: 1. ohne root und 2. zweites Funksteckdosenset).

    LG und schönen Abend :) Ich hoffe ihr könnt mir helfen


    PS: Ich weiß nicht, ob das hier das korrekte Subforum ist.

  • Hard- und Software: 433 MHz Steckdosen ohne Root und Codes herausfinden? Schau mal ob du hier fündig wirst!

  • Hallo McMardY,

    Zitat

    3.1: Ich würde alles ganz gerne ohne root laufen lassen. Wie kann ich die Codes für das funktionierende Funksteckdosenset (dieses hier: http://www.amazon.de/uniTEC-48111-Funkfe...teckdosen?tag=psblog-21 [Anzeige]) ohne root-Rechte verschicken? Bisher geht das nur mit "./codesend" unter root.

    Um die Root-Rechte wirst du nicht herum kommen. Zum Senden musst du auf die GPIO-Pins zugreifen wofür du die Root-Rechte benötigst. Du kannst allerdings dem Benutzer, unter welchem "codesend" ausgeführt werden soll, nur die Root-Rechte für diese eine Anwendung geben. Dazu solltest du hier im Forum mal nach "sudoers" suchen.

    Zitat

    Woran liegt es ferner, dass man zum Auslesen der Codes (nun wieder mit dem funktionierenden Set) sehr nah an den Empfänger dran gehen muss (keine Antenne installiert)?

    Die Frage hast du ja selber schon beantwortet. Wenn der Empfänger keine Antenne hat, wirkt sich das negativ auf die Signalstärke des Empfangssignals aus.

    Gruß Georg

    Einmal editiert, zuletzt von boandlkramer (17. August 2013 um 23:22)

  • Oh, okay das werde ich ausprobieren! Aber aus welchem Grund lässt sich gpio von wiringPi ohne root ausführen?

    Ich habe eine Website gefunden, auf der die Codes der og Funksteckdosen gesampelt wurde (also high bzw low für gemessene Zeiten). Wie kann man diese Informationen nutzen?

    LG :)

  • Danke für die Links. Ja sie fassen es ganz gut zusammen. Okay, mir ist natürlich nun klar, dass dort gewisse Signale (teilweise 0,1,2 oder 0,1) übermittelt werden. Allerdings habe ich noch folgende Probleme: Wie lässt sich das 433MHz-Modul über den Pi ansteuern (klar, ich habe eben immer rcswitch bzw 433Utils genutzt, aber es scheint mir, als ob ich mit diesen hier nicht weiter komme) und als zweites: wie komme ich auf die Codes, also Bit-Sequenzen an sich?

  • Ich hab mir damals diese Kombination gekauft.

    Ich bin mit den existierenden Lösungen auch nicht weitergekommen, da man bei den RSL-Teilen keinen Hauscode odgl. einstellen kann, sondern man muss eine existierende Fernbedienung anlernen.

    Also hab ich die Signale der Fernbedienung über den Empfänger mit dem Oszilloskop aufgezeichnet (kann auch mit der Heimlösung "Audioeingang" erfolgen).

    Herausbekommen habe ich dann (nach ein bisschen Signalglättung) die Signale im Anhang.
    Dort jeweils die steigende Flanke als Bit-Trennung genommen, habe ich meine zu sendende Codes erhalten.
    Mit dem Wissen, dass ein Bit aus vier Takten besteht und ein Takt ca. 450-500µs dauert, hab ich mir dann ein eigenes Python-Programm geschrieben, dass mir die ermittelten Codes mit dem richtigen Timing sendet.

    Ein Programm, dass die Prozedur mit Oszi und manuellem Heraussuchen der Bits übernimmt hätte ich noch geplant, ist aber nicht so hoch priorisiert.

    HTH
    Bernd

  • Hi,
    vielen Dank für die Antworten! Nachdem ich dieses WE einen Empfänger gegrillt habe, frage ich morgen die Elektronik-Werkstatt meines Fachbereichs :-). Ich werde die Ergebnisse hier natürlich posten! :)

    Aber nocheinmal zum zweiten Punkt: Wie genau geht man vor, wenn man das o.g. Programm "codesend" ohne root bzw. sudo ausführen will? Natürlich habe ich mir die sudoers-Datei vorgenommen, allerdings hat sich überhaupt nichts verändert.

    Hier meine Sudoers:

    Führe ich das Programm aus, so kommt die Fehlermeldung "wiringPiSetup: Must be root. (Did you forget sudo?)", also meldet sich wiringPi zu Wort.

    Einmal editiert, zuletzt von McMardY (25. August 2013 um 23:22)

  • Du solltest das codesend aber schon mit sudo aufrufen ("sudo /home/pi/builds/433Utils/433Utils/RPi_utils/codesend").
    Mit dem Eintrag in die sudoers Datei ersparst du dir nur die Passwortabfrage/-eingabe.

    Noch eine Empfehlung: die Programme, die irgendwann/irgendwo ausgeführt werden sollen, sollten in eines der Verzeichnisse /usr/local/bin (vorzugsweise) oder /usr/local/sbin gelegt werden (muss als root erfolgen).
    Solche Programme (und auch Scripte) sollten nicht in einem Home-Verzeichnis herumliegen.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

    Einmal editiert, zuletzt von digiart (26. August 2013 um 20:04)

  • Guten Morgen,

    Danke, das hab ich auch festgestellt! Jetzt funktioniert dieser Teil. Danke auch für den Tipp, dass man die Scripts/Programme an den richtigen Ort verschieben sollte!

    Aber wo ich immer noch keine Ideen habe ist, wie ich die Codes, angenommen ich hätte sie bereits, in ein Programm verpacke, welches den Sender ansteuert. Kann mir diesbzgl. jemand von euch einen Denkanstoß geben?

    LG McM

  • Hier meine Programme:
    remote_lib.py:


    remote_send:

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

  • Hi,

    Vielen dank für die Antwort! Ich hatte jetzt Zugriff auf ein oszi und konnte das signal einmal auswerten. Timings notiert und in ein Python Skript geschrieben, es passiert jedoch leider nichts :(. Ausgeführt ohne root rechte. Hier kommt das Skript (ps ich weis leider nicht wie ich es über tapatalk richtig formatieren kann):

    import wiringpi2 as wp2

    OUTPUT = 1
    INPUT = 0

    coding=[
    ("on",680),
    ("off",1300),
    ("on",740),
    ("off",640),
    ("on",1400),
    ("off",1320),
    ("on",740),
    ("off",1300),
    ("on",740),
    ("off",640),
    ("on",1440),
    ("off",660),
    ("on",1380),
    ("off",660),
    ("on",1400),
    ("off",640),
    ("on",1420),
    ("off",660),
    ("on",1380),
    ("off",660),
    ("on",1400),
    ("off",640),
    ("on",1400),
    ("off",640),
    ("on",1400),
    ("off",660),
    ("on",1380),
    ("off",660),
    ("on",1380),
    ("off",660),
    ("on",1400),
    ("off",1320),
    ("on",740),
    ("off",660),
    ("on",1400),
    ("off",640),
    ("on",1400),
    ("off",640),
    ("on",1400),
    ("off",1320),
    ("on",680),
    ("off",0),
    ]

    SEND_PIN = 17

    def init():
    print("starting initializing")
    wp2.pinMode(SEND_PIN,OUTPUT)
    wp2.digitalWrite(SEND_PIN,0)
    print("done initialising")

    def signalLow(time):
    print("turned to signal low - for " + str(time) + " microseconds")
    wp2.digitalWrite(SEND_PIN,0)
    wp2.delayMicroseconds(time)

    def signalHigh(time):
    print("turned to signal high - for " + str(time) + " microseconds")
    wp2.digitalWrite(SEND_PIN,1)
    wp2.delayMicroseconds(time)

    def sendSignal():
    leng=len(coding)
    for nr in range(leng):
    val,tim=coding[nr][0],coding[nr][1]
    print(val,tim)
    if val=="on":
    signalHigh(tim)
    else:
    signalLow(tim)

    def send():
    wp2.piHiPri(99)
    for i in range(6):
    print("====== "+str(i+1)+" ==================================")
    sendSignal()
    wp2.piHiPri(0)

    init()
    send()


    Liegt es an dem Skript? Oder könnte es sein dass die Steckdosen FM sind? (Mein Sender ist am).
    Eine kleine Bemerkung noch: am oszi ausgewertet waren es diese Timings, an der exportierten wave-file waren es jedoch einfach mehr Daten (hier 21 dort über 24 "hubbel").
    Ggf ließ sich ein sync bit hinzufügen.

    LG ich hoffe ihr könnt mir weiter helfen :)


  • Oder könnte es sein dass die Steckdosen FM sind? (Mein Sender ist am).

    Wie soll die Steckdosen etwas auswerten, was sie garnicht mitbekommt?
    Die Modulation muß schon passen.

    Hast Du schonmal in die Steckdosen rein gesehen, ob Du vielleicht das Decoder-IC erkennen kannst und dafür ein Datenblatt findest?

  • Sehen deine Signale zumindest ähnlich aus, wie die, die ich gepostet habe?
    Ich habe bei meinem System insgesamt 32 Bit + 1 Sync-Bit, bei den "anderen" Systemen (mit einstellbarem Hauscode) sind es 24 Bit + 1 Sync-Bit (zumindest bei denen, die ich gekauft habe).

    Hier noch mein kleines Programm, das mir die Bitfolge ausgibt:

    Beim Aufzeichnen deiner Signale solltest du den Sender auch ziemlich nach beim Empfänger betreiben, sonst gibt es zu viele Fehllesungen.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

  • Hi, vielen Dank für die Hilfe!

    Ich habe soeben eine Steckdose geöffnet, hier ist was ich gefunden habe: Bis auf eininige WIderstände und Kondensatoren sind das die Teile, dich ich gefunden habe:
    1. HF7520 - Lastrelais (Datenblatt: http://www.hongfa.com/pro/pdf/HF7520_en.pdf)
    2. SCC .22K 275V~X2, MPXGMF400/100/21 - Relais
    3. AZ358M - Was das Teil tut, weiß ich nicht, es stand aber irgendetwas von wegen Frequenz dabei (Datenblatt: http://pdf1.alldatasheet.net/datasheet-pdf/…EMI/AZ358M.html)
    4. crb 455E - Keramik-Resonator
    5. ksp 10 h39 - VHF/UHF-Transistor
    6. c9014 c722 - NPN-Transistor.

    Könnt ihr mit diesen Bauteilen klassifizieren, ob AM oder FM? Wenn FM, dann kann ich es ja direkt von der Kappe schreiben, da ich nur ein AM transmitter habe.

  • Ich habe ein wenig Erfahrung und es verwenden, um: http://www.wiore.com. Es funktioniert mit jedem Web-Browser. Es gibt keine Notwendigkeit, Software separata installieren. Ich habe das Haus und führen Sie die Beleuchtung und Heizung ... [...]. Mit Elro AB440 Wireless-Schalter ..
    Mit freundlichen Grüßen:)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!