Uit Hack42
Ga naar: navigatie, zoeken
Regel 45: Regel 45:
 
<pre><iframe width="390" height="50" scrolling="no" style="border: none;" src="https://hack42.nl/spacestate/"></iframe></pre>
 
<pre><iframe width="390" height="50" scrolling="no" style="border: none;" src="https://hack42.nl/spacestate/"></iframe></pre>
  
== Growlnotifier door [[Gebruiker:jvhaarst]] ==
+
== Growlnotifier door [[Gebruiker:JanVanHaarst]] ==
 
Knippen en plakken naar hack42notify.sh
 
Knippen en plakken naar hack42notify.sh
  
Regel 85: Regel 85:
 
done
 
done
 
</pre>
 
</pre>
 
  
 
== Opties ==
 
== 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.
 
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.

Versie van 7 mrt 2011 16:10

Project: SpaceStateSwitch
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
SpaceStateSwitch Picture.jpg

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
File:SpaceStateSwitch_Picture.jpg noez

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, hierop draait cron en die draait iedere minuut een script genaamd statecheck.sh Die kijkt met ethtool 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

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 Gebruiker:JanVanHaarst

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
# Nodig:
# bash
# curl
# Growl (http://growl.info/)
# growlnotify (in extras directory van de Growl dmg)
# plaatje van https://hack42.nl/wiki/index.php/Huisstijl

# variabelen
DEBUG=false
OLDSTATE="closed"
IMAGE="~jvhaarst/bin/code/42/Hack42.png"

# Oneindige loop
while true; 
do
	# check op state
	CURRENTSTATE=`curl -s http://hack42.nl/spacestate/state`
	# debug
	if $DEBUG;then echo $CURRENTSTATE;fi
	# check op verandering
	if [ "$CURRENTSTATE" != "$OLDSTATE" ]
	then
		if [ "$CURRENTSTATE" == "open" ]
		then
			growlnotify -s -m '#42 is open! ('`date "+%R"`')' --image $IMAGE
		else
			growlnotify -s -m '#42 is closed! ('`date "+%R"`')' --image $IMAGE
		fi
		OLDSTATE=$CURRENTSTATE
	fi
	sleep 60; 
done

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.