Ankündigung

Einklappen
Keine Ankündigung bisher.

RasPi bei Abwesenheit/Nacht etc. per JSON:RPC herunterfahren und Strom wegschalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    RasPi bei Abwesenheit/Nacht etc. per JSON:RPC herunterfahren und Strom wegschalten

    Hallo

    ich wollte mich nachdem so ein Beispiel im Buch von Stefan Heinle erwähnt ist, an folgendes wagen.
    Mein MediaPi am Fernseher soll zunächst bei Nacht und bei Abwesenheit heruntergefahren werden, um nicht unnötig Strom zu verbrauchen.

    Leider bin ich nicht sonderlich weit gekommen. Hauptproblem: Wie binde ich/spreche ich das JSON:RPC aus einem Perl-Plugin an?
    Die Befehlssätze waren einfach zu finden, allerdings habe ich noch keine Idee, wie ich diese absetzen kann.

    Hat jemand Lust mir hier zu helfen oder eine Idee, wie man das ganze anders/einfacher lösen könnte? Leider unterstützt der Pi ja kein WoL.

    Gruß
    Tobias

    Code:
    ######################################################################################
    #
    # Shutdown Pi
    # V0.1 2017-05-31
    # by SirTobiIV - www.knx-user-forum.de
    #
    ######################################################################################
    
    #########################
    ### BEGIN DEFINITIONS ###
    #########################
    
    # set cycle time to call plugin
    $plugin_info{$plugname.'_cycle'} = 300;
    
    
    #define GA's
    my $PresenceGA = '0/3/2'; #GA for Presence 1 = no one is present
    my $DayNightGA = '0/3/2'; #GA for Day/Night 1 = night
    my $PiSwitchOnOffGA = '0/3/3'; #GA to switch on/off power for PI
    my $PiStatusOnOffGA = '0/3/3'; #GA for Status of PI switching actuator
    
    
    #subscribe plugin to GA's
    $plugin_subscribe{$PresenceGA}{$plugname} = 1;
    $plugin_subscribe{$DayNightGA}{$plugname} = 1;
    $plugin_subscribe{$PiSwitchOnOffGA}{$plugname} = 1;
    $plugin_subscribe{$PiStatusOnOffGA}{$plugname} = 1;
    
    
    #########################
    ###  END DEFINITIONS  ###
    #########################
    
    # Start plugin when night-mode is activated or house is in absence-mode
    
    if ($msg{'apci'} eq "A_GroupValue_Write") {
       if ($msg{'dst'} eq $PresenceGA || $msg('dst') eq $DayNightGA {
          $plugin_info{$plugname.'_SWITCH'} = int($msg{'data'});
       }
    }
    
    # Switch off Pi
    # switching it on is realized by KNX - simply give power to it by switching the actuator on
    if ($plugin_info{$plugname.'_SWITCH'} == 1) {
        # JSON RPC switch off command
        {"jsonrpc":"2.0","method":"System.shutdown"}
        sleep(60); # wait 60s until switching off the power
        # knx_write($PiSwitchOnOffGA,1,1);
    }
    
    return;

    #2
    Nun, das ist kein Thema für die CometVisu, d.h. ich denke ein anderer Foren-Bereich (Code Schnipsel?) wäre da besser geeignet.

    Was Du nun genau machen willst habe ich noch nicht ganz verstanden. Ein WoL auf einem System dass kein WoL kann? Und was soll das JSON:RPC machen?

    Davon abgesehen: der Code sieht stark nach WireGate Plugin Format aus (CloneGate?). Falls es das ist: ein sleep(60) ist da eine schlechte Idee, da dass alles blockiert und so dafür leicht sorgen kann, dass dieses Plugin gesperrt wird.
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar

    Lädt...
    X