Shutdown Script: Difference between revisions

From NURDspace
(Created page with "{{Project |Name=Shutdown Script |Skills=Python, Linux, |Tool=No }}")
 
No edit summary
Line 4: Line 4:
|Tool=No
|Tool=No
}}
}}
The Script
<pre><nowiki>
#!/usr/bin/env python
#2019 The_Niz
#checks space status and shuts machine down if space is closed
import paho.mqtt.client as mqtt
import os
# The callback for when the client receives a CONNACK response from the server.
def
on_connect(client, userdata, flags, rc):
    if rc==0:
        client.connected_flag=True #set flag
        print("Connected with result code "+str(rc))
    else:
        print("Bad connection Returned code=",rc)
        client.loop_stop()
        client.disconnect()
    client.subscribe("space/state")
# The callback for when a PUBLISH message is received from the server.
def
on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))
    if msg.payload=="False":
        print("Space is uit")
        os.system('sudo /bin/systemctl poweroff')
    else:
        print("Space is aan")
    client.loop_stop()
    client.disconnect()
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("arbiter.vm.nurd.space", 1883, 60)
client.loop_forever()
</nowiki></pre>

Revision as of 22:44, 6 March 2019

Shutdown Script
NoPicture.png
Participants
Skills Python, Linux
Status
Niche
Purpose
Tool No
Location
Cost
Tool category

Shutdown Script Property "Tool Image" (as page type) with input value "File:{{{Picture}}}" contains invalid characters or is incomplete and therefore can cause unexpected results during a query or annotation process. {{{Picture}}} {{#if:No | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:No | [[Tool Cost::{{{Cost}}} | }}


The Script

#!/usr/bin/env python

#2019 The_Niz

#checks space status and shuts machine down if space is closed


import paho.mqtt.client as mqtt
import os 

# The callback for when the client receives a CONNACK response from the server.
def 
on_connect(client, userdata, flags, rc):

    if rc==0:

        client.connected_flag=True #set flag

        print("Connected with result code "+str(rc))

    else:

        print("Bad connection Returned code=",rc)

        client.loop_stop()

        client.disconnect()

    client.subscribe("space/state")

# The callback for when a PUBLISH message is received from the server.
def
on_message(client, userdata, msg):

    print(msg.topic+" "+str(msg.payload))

    if msg.payload=="False":

        print("Space is uit")

        os.system('sudo /bin/systemctl poweroff')

    else:

        print("Space is aan")

    client.loop_stop()

    client.disconnect()


client = mqtt.Client()

client.on_connect = on_connect

client.on_message = on_message


client.connect("arbiter.vm.nurd.space", 1883, 60)

client.loop_forever()