NetIO App Spielereien [Gemeinschaftsprojekt]

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich nutze die NetIO App, welche hier auch schon öfters erwähnt wurde (AppStore-Link) um meine Funksteckdosen zu schalten und die Temperatursensoren auszulesen.

    Nun habe ich mir gedacht, müsste man damit doch noch viel mehr machen können. Z.B. den PC per Wake-On-Lan anschalten. Der PC muss dafür natürlich geeignet und vorkonfiguriert sein. Anleitungen gibts dazu haufenweise im Internet.

    Dafür habe ich die Netio_Server.py von ThomasH benutzt. Hier der Link zur Version Klick mich

    Nun brauchen wir das Paket wakeonlan. Dafür geben wir ein:

    Code
    sudo apt-get install wakeonlan


    Anschließend kann man per

    Code
    wakeonlan DE:IN:EM:AC:AD:DR


    ein Magic Paket senden.
    Da es in der Netio_Server.py schon eine Funktion gibt, Linux befehle zu versenden, können wir in NetIO einen Button erstellen und diesem den Send-Wert Linux sudo wakeonlan

    Code
    Linux sudo wakeonlan DE:IN:EM:AC:AD:DR


    geben.

    Sobald man nun den Button drückt, sollte der PC booten.
    Wenn man nun im Router den entsprechenden Port (auf welchem der Netio_Server läuft) noch freigibt, kann man auch von unterwegs den Rechner booten :)


    Ich möchte gerne noch mehr Spielereien in diesem Thread zusammenfassen, die man mit NetIO und dem Pi so anstellen kann. Es darf also jeder gerne auch was reinschreiben.

    Ich werde die Tage noch erklären, wie man angeschlossene LEDs steuern kann.

  • Hey, du musst in der netio_server.py die ID von deinen Sensoren eintragen:
    # dictionary with for sensors: [sensor name] [1-Wire device]
    sensor_dict = { "Zimmer":"10-0008028cdf7d",
    "Terrarium":"10-000802ab7ffd"
    }

    Dann habe ich in Netio ein Label gemacht, welches als Read Command "Temp Zimmer" hat.

  • Okay, dann etwas zu den LEDs steuern:

    Vorraussetzung sollte sein, dass man die LED schon per GPIO angeschlossen und auch per Kommandozeile mit

    Code
    echo "1" > /sys/class/gpio/gpioX/value

    steuern kann.
    Damit das auch der User PI kann und man nicht root sein muss, habe ich folgendes Skript in den Autostart gepackt:


    Somit werden beim Autostart die GPIOs 7 und 8, die ich bei mir für 2 LEDs benutze, zuerst aktiviert, dann als Ausgang definiert und anschließend die Rechte so gesetzt, dass jeder Nutzer die LEDs steuern kann.

    Nun habe ich in der Netio_server.py folgendes geändert/hinzugefügt:
    In das server_dict Array habe ich folgenden Wert hinzugefügt:

    Code
    "led"   :"led"

    Dann habe ich eine Funktion angelegt:

    Und schließlich in der class MyTCPHandler folgendes hinzugefügt:

    Code
    if ( "led" == client_cmd):
                        server_reply = srvcmd_led(server_cmd,client_words,client_args)

    Nun kann man in NetIO entweder einen Button mit folgendem Send Befehl einrichten:

    Code
    led set gpio7 1


    Wobei natürlich die gpio Zahl angepasst werden muss. 1 wäre für LED an, 0 für LED aus.

    Oder man macht einen Schieberegler mit folgenden Einstellungen:

    Code
    onValue: 1
    offValue: 0
    onSend: led set gpio7 1
    offSend: led set gpio7 0
    reads: led check gpio7


    Viele Grüße

    Tobi


  • Hey, du musst in der netio_server.py die ID von deinen Sensoren eintragen:
    # dictionary with for sensors: [sensor name] [1-Wire device]
    sensor_dict = { "Zimmer":"10-0008028cdf7d",
    "Terrarium":"10-000802ab7ffd"
    }

    Dann habe ich in Netio ein Label gemacht, welches als Read Command "Temp Zimmer" hat.

    Einfach nur das in die netio_server.py eintragen? Habe das einfach am Ende meiner py datei eingetragen und in der App steht dann einfach nur "100"

    Meine py sieht so aus jetzt

  • Da fehlt aber einiges in deiner netio_server.py. Da scheint beim kopieren was falsch gelaufen zu sein, glaube ich.

    Guck mal hier, da kannste dir die komplette nochmal kopieren. Sollten 600 Zeilen oder sogar mehr sein.
    Und da wird oben auch das sensor_dict Array schon deklariert, da änderste einfach die Werte auf deinen Sensor Wert um.

  • Ähm, gute Frage. Also Windowsrechner gegenseitig runterfahren geht, ob man aber über nen Linux Rechner nen Windowsrechner runterfahren kann, müsste ich mal nachschauen.
    Wird dann ein berechtigungsproblem geben, denke ich.
    Vllt gibt es sowas wie psexec für Linux....

  • Hallo zusammen,

    bin nicht ganz fit mit Linux aber komme langsam ins Thema.
    Ich würde gerne mein Calibre über die App steuern, z.B. News abrufen.
    Mach ich im Terminal mit
    [font="Times New Roman"]ebook-convert /media/platte/KindleNews.recipe /media/platte/news.mobi[/font]
    Wie richte ich denn einen entsprechenden Button ein?
    Wenn ich das Kommando einfach über ein sends-Attribut schicke wird dieses zwar in der Konsole angezeigt aber das wars.
    Was hab ich vergessen das dieses Kommando auch ausgeführt wird?

    • Offizieller Beitrag

    Du hast ja nur nen send befehl an den server geschickt. jetzt muss der server den befehl erkennen und dementsprechend ne funktion aufrufen die deine terminal befehle aufruft. schau dir doch einfall mal im netio server die bestehenden funktionen an. ;)

Jetzt mitmachen!

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