Beiträge von Sakaschi

    Hier mein Blockly Code, leider ist der erste Post schon ausgereizt.


    Reserve, Anleitung für Windows

    Moin, das ist normal.

    Nimm es besser nicht so genau. Leider scheint es so zu sein das der IoBroker den RAM falsch ausliest anstelle den gesamten RAM anzuzeigen, zeigt es nur den RAM an den der IoBroker zu Verfügung hat.

    Sprich wenn andere Anwendungen und dein Betriebssystem auch etwas RAM verbrauchen, steht im IoBroker weniger zu Verfügung. Das RAM-Management von Linux ist aber super und du brauchst dir keine großen Gedanken drüber machen.

    Gruß


    Sakaschi

    Moin Leute,

    Ich möchte euch gerne meine Methode vorstellen wie ich mit Alexa und IoBroker meinen PC steuere, das ganze mache ich komplett ohne WOL und man kann somit den PC komplett herunterfahren, getestet habe ichs schon mit Windows und Linux (Mein Hauptsystem) und funktioniert klasse.

    SchimmerMediaHD habe ich ja versprochen das ich euch hier nen Tutorial hinterlasse, leider wird dieses Tutorial etwas zeit in Anspruch nehmen, daher ich werde es nicht so schnell fertig bekommen. Sobald das Tutorial aber vollständig ist kommt das [WIP] im Title weg.

    Leider bin auch ich Berufstätig.

    WIP = Work in Progress = ist in arbeit.

    Gruß

    Sakaschi

    ------------------------------------------------------------------------------------

    Was wird benötigt:

    - IoBroker auf nen Pi2 oder Pi3

    - das ioBroker Modul ping (findet ihr bei den adapter) + einrichten (werde ich nicht erklären, ist selbsterklärend)

    - 433mhz Funksteckdosen vom Baumarkt, mit Dipschalter!

    - Alexa, falls ihr es auch mit Sprache steuern wollt

    - 433mhz Sender u. Empfänger, gibts schon für 3-4 euro bei Amazon

    - Dumper Kabel um den 433 mhz sender u. Empfänger zu verbinden.

    - Computer mit Windows oder Linux

    - viel Zeit

    1.

    Zuerst müssen wir unseren 433mhz Sender und Empfänger vorbereiten, dazu habe ich die zuvor auf einer Platine gelötet um platz auf der GPIO zu sparen, da wir sonst 5V und GND doppelt belegen müssen. (1 für den Sender und 1 für den Empfänger)

    Die Pinbelegung findet ihr hier: https://tutorials-raspberrypi.de/raspberry-pi-f…33-mhz-steuern/

    Einfach so machen wie in dieser Anleitung.

    Hier noch paar Bilder wie es bei mir ist:


    schimmer-media.de/index.php?attachment/1710/schimmer-media.de/index.php?attachment/1711/schimmer-media.de/index.php?attachment/1712/schimmer-media.de/index.php?attachment/1713/

    Habt ihr das alles gemacht aus der Anleitung, solltet ihr nun eure Funksteckdosen schalten können. Diese brauchen wir später damit wir den PC vom Stromnetz trennen können.

    Das C++ Script aus der Anleitung braucht ihr nicht, wenn ihr Funksteckdosen mit Dipschalter habt.

    im Ordner /433Utils/RPi_utils findet ihr eine Datei die send heißt, diese gebt ihr Aufführungsrechte mit "sudo chmod +x send"

    nun könnt ihr schon via Console mit dem befehl "/home/pi/scripts/raspberry-remote/send 10111 4 1"

    Die Steckdosen steuern, bei mir ist alles in den Ordner Scripts drinne und habe die Ordner auch umbenannt.

    Die ersten 5 zahlen "10111" ist mein Systemcode den ich per Dipschalter eingestellt habe, die 4 ist welche Steckdose es ist (Dipschalter 3 und 1 auf 1 gestellt = 4) und die letzte zahl steht für den Status, 1 für an und 0 für aus.

    2.

    Ab jetzt wird es richtig aufwändig da wir nun Scripte außerhalb IoBroker erstellen müssen.

    Dazu legt wie ich am besten in euer home verzeichnis einen Ordner an den ihr auch "scripte" nennt

    Code
    mkdir /home/pi/scripte

    nun geht ihr in das scripte Verzeichnis rein,

    Code
    cd /home/pi/scripte oder ~/scripte

    Jetzt brauchen wir in diesen Ordner ein NPM Modul dieses nennt sich simple-ssh und wird benötigt um den Rechner via SSH Herunterfahren zu können. (Linux und Mac OS) Für Windows wird es nochmal separat behandelt das müssen wir über das SMB Protokoll lösen.

    wenn ihr im scripte Ordner seid, führt dort folgenden Befehl aus:

    Code
    npm install simple-ssh

    Die Installation des Moduls kann etwas dauern.

    Ist das Modul fertig installiert müsst ihr nun das passende Script erstellen

    Code
    nano Computer_an.js

    mit Folgendem Inhalt:

    Das Script macht folgendes, es verbindet sich via ssh automatisch mit Euren Linux-Rechner und führt dort einen Shell-Script aus was lokal auf dem Rechner liegt, leider ist simple-ssh nicht direkt in der Lage befehle auszuführen die mit Shutdown zu tun haben, daher ein Shell-Script was ausgeführt wird.

    Jetzt müsst ihr auf euren Linux-Rechner noch ein ssh server aufsetzten damit ihr euch verbinden könnt.

    Dies wird jedoch hier sehr gut erklärt: https://wiki.ubuntuusers.de/SSH/

    jetzt kommen wir zum script nummer 2 den ich Computer_aus.js genannt habe.

    host und user ist natürlich an eure Gegebenheiten einzurichten.


    Auch hier dasselbe es wird ein Lokales Shell-Script ausgeführt was auf dem jeweiligen Ziel-Rechner liegt.

    Hier jetzt die 2 Shell-Scripte die bei mir eben in /home/patrick/ liegen:

    abbruch.sh

    #!/bin/sh muss in der ersten Zeile stehen!!! Wird leider im Code-Block nicht angezeigt!!!!

    Bash
    #!/bin/sh
    /sbin/shutdown -c

    shutdown.sh

    #!/bin/sh muss in der ersten Zeile stehen!!! Wird leider im Code-Block nicht angezeigt!!!!

    Bash
    #!/bin/sh
    /sbin/shutdown -h +1

    anstelle +1 könnt ihr auch now nehmen, +1 heißt nur das der PC noch 1 Minute anbleibt und ich eben diese Minute nutzen kann um das Herunterfahren abzubrechen.

    Bei now wird sofort ohne Warnung heruntergefahren!

    Beide scripte noch mit sudo chmod +x ausführbar machen.


    Jetzt kommen wir leider zu ner kleinen Sicherheitslücke, damit die Befehle ausgeführt werden können ohne sudo zu benutzen (kann simple-ssh auch nicht) müssen wir

    Code
    sudo chmod +s /sbin/shutdown

    machen, damit bekommt jedoch jeder User das recht den Rechner herunterzufahren, für mich alleine jedoch nicht wirklich riskant.

    ab jetzt solltet ihr euren Linux Rechner schon herunterfahren können.

    Dies könnt ihr ganz einfach testen.

    Loggt euch via ssh auf euren Raspberry ein, navigiert nach /home/pi/scripte und macht folgenden befehl:

    Code
    sudo node computer_aus.js

    jetzt sollte euer PC dann nach 1 Minute oder eben sofort je nachdem wie ihr es eingestellt habt, herunterfahren.

    3.

    Jetzt sind wir auch schon fast am ende angelangt, ging schneller als gedacht.

    Jetzt brauchen wir nur noch einen Datenpunkt "PC" und das passende Blockly Script.

    schimmer-media.de/index.php?attachment/1716/

    So genau will ich da auch eigentlich nicht drauf eingehen, da diese Anleitung eh nichts für Anfänger ist.

    Falls jedoch Fragen sind, ich helfe immer gerne!

    Wie Funktioniert das ganze denn nun?

    Es ist sehr einfach, wenn der Datenpunkt PC auf true geht (z.b via Alexa) wird die Funksteckdose auf "ein" gestellt und dann ein Shell Befehl verschickt, der macht zu dem Zeitpunkt nichts, ist auch nicht schlimm.

    Wenn ihr den Datenpunkt PC auf false setzt, wird via ssh euer PC heruntergefahren, und dann geschaut ob der noch anpingbar ist, wenn nicht, wird die Steckdose auf "aus" gestellt. Wenn Software Updates anstehen bitte nicht über Alexa den PC ausschalten, sondern normal über das System auf Herunterfahren gehen, damit die Updates in ruhe installiert werden können.


    Falls ihr schon Alexa gesagt habt sie soll den PC ausschalten, ihr euch aber jedoch innerhalb der 1 Minute Frist umentscheidet und Alexa sagt das sie den pc einschalten soll. Wird der Befehl shutdown -c via ssh gesendet und euer PC bleibt an.


    Simple-SSH Example: https://www.npmjs.com/package/simple-ssh#examples