k (→Software) |
|||
Regel 10: | Regel 10: | ||
== Software == | == Software == | ||
− | Het Access Point draait linux | + | Het Access Point draait linux. Met behulp van cron wordt iedere minuut een statecheck script gestart. wat met ethtool kijkt of eth1 link heeft. |
− | |||
Pseudocode van het statecheck.sh script: | Pseudocode van het statecheck.sh script: |
Versie van 8 mrt 2011 07:10
Project: SpaceStateSwitch | |
---|---|
Naam | SpaceStateSwitch |
Door | RickDeckardt |
Status | Afgerond |
Madskillz | madhacks |
Doel / Omschrijving | |
Een coole schakelaar die de spacestate twittert/irc/etc met rudimentaire api | |
Alle Projecten - Project Toevoegen |
Hardware
De SpaceStateSwitch is een tweepolige maakschakelaar die gekoppeld is aan de tweede ethernetpoort van een Soekris accesspoint. Sluiten van de schakelaar verbindt tx+/rx+ en tx-/rx-, waardoor eth1 de link up detecteert.
Software
Het Access Point draait linux. Met behulp van cron wordt iedere minuut een statecheck script gestart. wat met ethtool kijkt of eth1 link heeft.
Pseudocode van het statecheck.sh script:
IF connection_state_eth1 eq connected AND laststate eq closed; curl http://user@pass:host/spacestate/setstate.php?state=open IF curl_success; set laststate open IF connection_state_eth1 eq disconnected AND laststate eq open; curl http://user@pass:host/spacestate/setstate.php?state=closed IF curl_success; set laststate closed
'API'-mogelijkheid voor externe apps
- http://hack42.nl/spacestate/state (kan de text open of closed bevatten, handig voor apps)
- http://hack42.nl/spacestate/state.time (bevat de time van de laatste state-change, handig voor apps)
- http://hack42.nl/spacestate/state.csv (bevat date,time,state per regel, handig voor bouwen van graphs)
Tweets
De koppeling naar twitter wordt vanuit het setstate.php script gedaan: Het phpscript twittert de spacestate op @hack42 en past de volgende lokale files aan: - http://hack42.nl/spacestate/index.html
Koppeling naar IRC
Op irc://irc.hack42.nl/#hack42 draait een gozerbot met rss-feed plugin Een van de rss-feeds die hij volgt is die van http;//twitter.com/hack42, elke minuut kijkt hij naar nieuwe tweets van hack42 en bij een nieuwe tweet blaft hij deze het irckanaal in.
XSS in je eigen webpagina!
Plak deze code in je webpagina voor de hack42 spacestate-bar
<iframe width="390" height="50" scrolling="no" style="border: none;" src="https://hack42.nl/spacestate/"></iframe>
Growlnotifier door jvhaarst
Knippen en plakken naar hack42notify.sh
#!/bin/bash # Scriptje om een Growl notify te krijgen bij openen (en sluiten) van de space # jvhaarst, 13/2/2011 8h47 # Aangepast door Deckardt # Aangepast jvhaarst 13/2/2011 15h03 # Aangepast jvhaarst 13/2/2011 21h20 (datum van statuswijziging toegevoegd) # Aangepast jvhaarst 13/2/2011 21h50 (datum van statuswijziging uit state.time) # Nodig: # bash # curl # Growl (http://growl.info/) # growlnotify (in extras directory van de Growl dmg) # plaatje van https://hack42.nl/wiki/index.php/Huisstijl # Start debugging from here #set -o xtrace #set -o verbose # variabelen DEBUG=false OLDSTATE="closed" IMAGE=~jvhaarst/bin/code/42/Hack42_white.png # Oneindige loop, iedere 60 sec draait ie while TRUE; do # check op state, ignore 404's, but returm error state CURRENTSTATE=`curl -f -s http://hack42.nl/spacestate/state` CURL_ERROR=$? # debug $DEBUG && echo $CURRENTSTATE # check op verandering if [[ "$CURRENTSTATE" != "$OLDSTATE" && $CURL_ERROR -eq 0 ]];then # Haal tijd van verandering op TIME=`curl -s http://hack42.nl/spacestate/state.time` # Growl de state ! growlnotify -s -m "#42 is $CURRENTSTATE! ("$TIME")" --image $IMAGE # De huidige is de oude, zodat bij we een nieuwe state dat merken (lekker cryptisch, niet ?) OLDSTATE=$CURRENTSTATE fi sleep 60 done
Het icon staat hier :
Opties
Het doorverbinden van tx+/rx+ en tx-/rx- kan ook met een tweepolig maakrelais. Dit kan gestuurd worden met een handmatige (enkelpolige) schakelaar, gekoppeld met de ruimteverlichting, een toegangssysteem of bewegingsmelders.