k |
|||
Regel 95: | Regel 95: | ||
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. | 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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
= English = | = English = |
Versie van 8 mrt 2011 10:23
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 |
Nederlands
Hardware
De SpaceStateSwitch is een tweepolige maakschakelaar die gekoppeld is aan de tweede ethernetpoort van een Soekris 4511 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.
English
Hardware
The SpaceStateSwitch is a DPST switch connected to the second ethernet port of a Soekris 4511 accesspoint. Closing the switch connects tx+/rx+ and tx-/rx-, causing eth1 to detect link up.
Software
The Access Point runs linux. Using cron the statecheck script is executed each minute; it uses ethtool to check for eth1 link up.
statecheck.sh script in pseudocode:
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
rudimentary 'API' for external apps
- http://hack42.nl/spacestate/state (contains the text 'open' or 'closed', to be read by apps)
- http://hack42.nl/spacestate/state.time (contains the last state-change time, to be read by apps)
- http://hack42.nl/spacestate/state.csv (contains date,time,state per line, for graphing purposes)
Tweets
Twittering the status change to @hack42 is done using setstate.php on the external webserver. It also modifies http://hack42.nl/spacestate/index.html , a very bare page which can be quickly and easily accessed via almost any phone with internet capabilities.
Interface to IRC
irc://irc.hack42.nl/#hack42 runs a gozerbot with rss-feed plugin. One of the feeds is http;//twitter.com/hack42, which is checked every minute and echoed into the channel
XSS in your own webpage!
Paste this code in your webpage to show the hack42 spacestate-bar
<iframe width="390" height="50" scrolling="no" style="border: none;" src="https://hack42.nl/spacestate/"></iframe>
Growlnotifier by jvhaarst
cut and paste to 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
The icon is here:
Options
Connecting tx+/rx+ and tx-/rx- can also be done using a DPST relay. This can be controlled by a SPST switch, an access system, motion sensors or simply hooked up to the room lighting.