RaspiHome + ESP8266

Door Toppe op donderdag 23 april 2015 09:17 - Reacties (4)
Categorie: -, Views: 4.743

Zo,

Ondertussen een aantal dagen geen blog maar dat betekend niet dat ik niets heb gedaan.

Nee, de afgelopen dagen ben ik bezig geweest met de scene's, 433MHz ontvanger, ESP8266 en meer.

Code & GUI
Eerst even een korte code samenvatting:
  • Timer functie herschreven, hier zaten toch nog een aantal foutjes in. Timer moet het uitschakelen van bijvoorbeeld een PIR mogelijk maken.
  • Verbeterde functie geo fence.
  • Python script voor PIR en contact sensoren verbeterd
  • Bezig met events, wat is er de laatste (bijvoorbeeld) 24 uur gebeurd? Hier zitten nog wat haken en ogen en is ook nog niet af...
  • Thermostaat herschreven, website laadt nu sneller en daarna haalt hij pas de thermostaat informatie op*
  • Verbeterde notificatie waarschuwingen, bijvoorbeeld als een scene niet gestart kan worden, de thermostaat op een of andere manier bijgewerkt word OID.
*Hier zit een tijdwinst van ongeveer een seconde, ICY (E-Thermostaat) heeft officieel geen API maar toch hebben we hem werkend. Omdat er geen API is zal de snelheid voor hun geen grote rol spelen, jammer. Nu haal ik de informatie via AJAX op.

Helaas kom je er soms pas na een paar dagen achter dat iets niet helemaal lekker werkt of uiteindelijk helemaal niet werkt. Deze opties verbeter ik natuurlijk constant waar nodig.

433Mhz ontvangen
Dit blijft een beetje dossier hoofdpijn, 2 dagen geleden heb ik een extra (nieuwe) ontvanger in elkaar gesoldeerd, eerste testen waren zeker positief. Bereik was dik in orde en ook de snelheid was prima.

Helaas een aantal uren later viel het bereik weer weg zonder dat ik iets veranderd heb aan de fysieke installatie (plek, etc allemaal het zelfde). Nieuwe batterijen helpen totaal niet dus nu wacht ik op een "speciale antenne voor 433MHz", die komt vandaag als het goed is.

Heb er wel een hard hoofd in |:(

ESP8266
Meerdere mensen hebben al aangeven dat het slim is om over te stappen op een ESP8266 WiFi chip voor Arduino, dus m'n collega heeft de boel besteld en werkend gemaakt... Top!

Tot ik er achter kom dat er een vloek op mijn huis rust, ik heb de sensor opgehaald met de juiste configuratie etc er op. Thuis aangesloten, LANScan geopend (ideaal programma, Mac OS only?) en ja hoor, hij stond er tussen. Snel naar de website en t werkte allemaal.

Daarna even een DS18B20 aangesloten, en toen was het klaar. De ESP8266 kan ik niet meer vinden op het netwerk. Ook hiervan gister een nieuwe (+programmeer kabel) besteld dus ik kan straks weer aan het werk.

Nee, ik woon niet in een groot huis (appartement,56 vierkante meter? 8)7 ) met slechts 1 echt draagende muur. Bereik zou het probleem niet kunnen zijn.

RaspiHome

Door Toppe op zaterdag 18 april 2015 07:47 - Reacties (11)
Categorie: -, Views: 4.854

Afgelopen dagen een 'stormvloed' van reacties ontvangen, de meeste via de mail (het nadeel als je je email adres openbaar hebt), ene deel via DM.

Al met al, altijd leuk om die reacties te lezen _/-\o_

Afgelopen dagen heb ik een behoorlijk aantal regel's code omgebouwd, gekke scripts die voor bepaalde dingen gebruikt worden zijn nu een beetje opgeruimd, opgeschoond en verbeterd.

Voorbeeld: De code voor de planning bestond eerst uit 400 regels code (wel een hele hoop commited) en nu uit 37 regels code.

Tevens heb ik iemand bereid gevonden om de letters "RH" in de achtergrond te zetten zodat je ook een leuk icoon hebt voor op je iOS device.

En verder dan?
  • Verbetering van notificaties op de web app zelf, geven nu ook een error melding als het niet gelukt is.
  • Verbetering van thermostaat, hij kijkt nu niet alleen meer naar de response-code maar ook haalt hij opnieuw de ingestelde temperatuur op, alleen kijken naar de response-code is niet altijd even betrouwbaar.
  • Wat kleine design aanpassingen oa: nu de bekende "location arrow" voor de mobiele apparaten ipv een "smartphone" & een light bulb als icoon voor de apparaten.
  • Verbeterde javascript, niet voor elke actie een aparte xmlhttp meer opzetten
  • Sensoren, laatste aanmelding & afmelding is nu laatste melding geworden.
  • Verbeterde reciever code, als hij nu een code van een 433MHz apparaat ontvangt doorzoekt hij de "scene" tabel ipv "switch" tabel.
  • Starten van een scene aangepast. Voorheen had iedere pagina een aparte CURL functie ( 8)7 ), nu is het één algemene functie geworden die onderdeel is van de scene class ($scene->Start('id');), hier zie je vrijveel tijdwinst in.
  • Last but not least: de huidige tijd op de grote apparaten helemaal rechts onderin
Mocht iemand een specifieke screenshot ergens van willen, ik ben bereikbaar van maandag tot en met zondag van 06:00 tot 23:00 met uitzondering van vanavond :X

Home Domotica V2

Door Toppe op dinsdag 14 april 2015 08:19 - Reacties (20)
Categorie: -, Views: 5.174

Deze is na aanleiding van deze

Je krijgt toch leuke reacties, ook via de email 8)7 het leek me daarom leuk om iets "dieper" in te gaan in wat ik nou momenteel heb draaien.

Hardware
Momenteel draait mijn software op 1 "hub" en 2 "nodes". Feitelijk word alles aangestuurd door de hub alleen soms is het makkelijker om alle sensoren in bijvoorbeeld slaapkamer aan te sluiten op een andere Pi, daar zijn de 2 nodes dus voor. Pi nummer 4 komt er aan.

De hub:
Raspberry Pi 2
32GB Micro SD class 10
5V 2A Adapter
Ethernet

De nodes:
1x Rasberry Pi B+
1x Raspberry Pi 2
32GB Micro SD class 10
5v 1.2A Adapter (Ja, de Pi 2 heeft eigelijk 2A nodig)
TP-Link WiFi

De sensoren
Momenteel heb ik onderstaande sensoren:
4x DHT22 Temperatuur sensor
2x DS18B20 Temperatuur sensor
1x 433MHz zender
2x Bewegingsmelder
2x Deurcontact
Te veel klik aan klik uit modules

Is opzich niet heel veel, maar ik de loop van de tijd word dit steeds groter.

Toekomst
Momenteel is mijn favoriete collega (tja, moet hem wel te vriend houden, geen idee of hij het leest :Y) ) bezig met het werkend krijgen van een Arduino Nano ICM WiFi. Idee hiervan is dat we de meeste sensoren op afstand kunnen gaan uitlezen. Ja, een klant en klaar pakket werkt waarschijnlijk sneller maar is lang niet zo leuk. Communicatie via 433MHz hebben we ook naar gekeken maar hiervan is het nadeel dat het bereik vaak niet voldoende is.

Ja, dit probleem heb je ook via de WiFi maar wij gaan er vanuit: Geen bereik is toch een repeater :9

Software
http://static.tweakers.net/ext/f/pcpHzO7CegGnC6hsYbKci7Bv/full.png
Dit script is speciaal voor de bewegingssensoren. Deze is gekoppeld met een LDR dus schakelt alleen als het donker genoeg is. Ja, hier zitten nog wat kleine haken en ogen: LDR reageert direct, dus ook als de sensor maar tijdelijk (zeg, 1 seconde) word "geblindeerd"

http://static.tweakers.net/ext/f/yyfopL6Ya4zTy5qIaWpr7vFO/full.png
Ik kreeg vorige week de magneet contacten binnen en moest ze natuurlijk even testen. Dus dan maar op de koelkast. Overigens wel leuk want ik heb altijd een discussie dat ik teveel melk drink, nu kan ze zien dat dit niet het geval is

http://static.tweakers.net/ext/f/NhO8e59CnqmgBN7VenIjtM6v/full.png
Live een overzicht van de sensoren, reageert binnen 2 seconde. Uitgebreid getest :*)

http://static.tweakers.net/ext/f/z2vSi9Rf7VoofkIJd7Y4FUU6/full.png
Deze had ik ook in de vorige gepost echter zie je nu ook even een notificatie :9~

http://static.tweakers.net/ext/f/bsxvW3579RIdEE70CiJ4izQz/full.png
Grafiek van de temperatuur in de slaapkamer

http://static.tweakers.net/ext/f/gG8BYSZgZo5Y6cXTizHMFvZU/full.png
Overzicht van alle temperaturen, hier zitten nog wat kleine foutjes

"Admin"
Ik zal geen screenshots posten van het beheerderspaneel, t werkt en ziet er toonbaar uit maar vraag me af of iemand er op zit te wachten.

Waar ik wel tegen aanliep was de uitbreidbaarheid van het systeem, ik wil snel nieuwe "modules" kunnen toevoegen zonder de halve code te hoeven ombouwen, daarom heb ik afgelopen dagen het hele systeem omgebouwd naar JSON data voor de configuratie

Hoe ziet dat er dan uit? Nou zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
    "devices": {
        "Sidetable": "on",
        "LED Strip": "on",
        "Hektar": "off",
        "LED Strip TV": "on",
        "Plafond eetkamer": "off",
        "Plafond woonkamer": "off",
        "Voordeur": "on",
        "Toilet": "on"
    },
    "temperature": {
        "lower_than": "21",
        "set_temp": "21"
    },
    "notification": {
        "send": "yes",
        "user trigger": "yes",
        "message": "Welkom thuis!"
    },
    "delay": {
        "Gang uit": "2"
    },
    "timer": {
        "disable_start": "07:45",
        "disable_end": "08:00"
    }
}


Als jullie uitleg nodig hebben, dan hoor ik het wel. Ook hier zullen ongetwijfeld nog kleine foutjes zitten maar die los ik wel weer op.

Notifications & GEO Fence
2 punten die voor mij toch wel "essentieel" waren maar die ik op geen enkele goede manier kon triggeren, na wat zoek werk kwam ik voor de notificaties uit bij Pushover. 7 dagen trial en daarna 1 malig ¤5 voor 7500 berichten per maand. Vind ik zeker fair. Trial is bijna afgelopen en dan maar "kopen"

Ik zou graag een "slim" systeem maken, geen devices thuis? Oké, schakel dan alles maar zoals ik ingesteld heb (bovenstaande code is als ik thuis kom).

Nu heb ik dit geprobeerd aan de hand van WiFi, naast dat het met iOS in elk geval niet lekker werkt (na een x periode kan hij je device niet meer "pingen") schuilt er ook nog een ander gevaar: wat als je WiFi en/of bluetooth uit hebt staan? Juist. dan gebeurt er niets.

Wat je niet zomaar kan en zal uitzetten is je GPS. Via een website kwam ik uit op de "Find my friends" versie. Deze kan een mail sturen zodra je een bepaald gebied binnen komt of juist verlaat.

En zoals alles bij mij, het werkt niet |:( althans, alleen als ik even m'n scherm "unlock" en een willekeurige app open die GPS gebruikt zoals Facebook.

Toen gekeken naar IFTTT.com en dan het zelfde idee maken, stuur een mailtje als ik een gebied binnen kom of verlaat. Opzich werkte het wel maar heb het er heeeeeel snel weer afgegooid, iets van 7 mailtjes binnen een uur.. Daag!

Wat ik eigelijk wou, een app die een website kan openen als ik het bekende gebied verlaat of juist betreedt. Nergens te vinden. Uiteindelijk kwam ik er 1 tegen die precies deed wat ik wou echt per toeval. Genaamd Geofancy. Deze app opent een GET of POST website op t moment dat je weg gaat of thuis komt.

Ondertussen een aantal dagen in gebruik en werkt lekker, alleen bij m'n vriendin hapert hij nog wel eens met thuis komen maar dat zal aan haar liggen, de website word in elk geval niet geopend want anders krijg ik wel weer een notificatie.

Overigens, ja, het systeem kijkt naar hoeveel apparaten er nog thuis zijn voordat de actie daadwerkelijk gestart word. Als ik dus nog lig te slapen _/-\o_ en m'n vriendin naar haar werk gaat blijft de verwarming nog lekker aan staan, pas als ik weg ga zal hij automatisch uitschakelen.

Wie wil er een deel 3 en wat wil je er in zien?

Voor de Python developers onder ons, iemand enig idee voor dit probleem?

Wil jij mijn systeem testen? RaspiHome opensource?

Home Domotica

Door Toppe op maandag 13 april 2015 12:31 - Reacties (12)
Categorie: -, Views: 4.684

De trend in "home domotica" (vanaf nu HD) word steeds groter. Binnen kort geeft Apple als het goed is Homekit (eindelijk) vrij voor de markt. Mijn vermoeden? Er gaat een hele hoop bij komen.

Ook ik doe mee met deze markt, ik ben begonnen met een setje van de Ikea (te lang geleden) om de lampen aan of uit te zetten, wat een hippe tijd:)

Gaande weg ben ik overgestapt:

Klik aan klik uit, TPC-300
Ik kocht dit terwijl ik wist dat het niet is wat ik wou. Maar ja, zo ben ik. Domme aankopen doen "omdat het kan". Ik had uiteindelijk de besturing via PHP gemaakt maar ach, werkte niet echt lekker. Overigens had ik toen 1 (jaaaaa) ontvanger:)

Vera Lite
Ik dacht ik ga het goed doen, koop een te dure "Vera Lite" want ja, dat schijnt echt goed te zijn. Overigens was dit nergens op gebaseerd en zoals vaker bij mij, ik wil het hebben. punt.

Tijdens de installatie vond ik t al maar een ramp, niet voor mij weg gelegd en het werkte ook crap: de verbinding met de Vera viel constant weg en ook kon ik vaak niet inloggen.

Ach, tijdje gebruikt en toen de deur uit:)

Klik aan klik uit, ICS-1000
De Vera was de deur uit en ik dacht, wat nu? ICS-1000!!! Kopuhhh!! Jonguh!! Had nog wat geld gevonden (ja, zo gaat dat) dus gelijk een sloot aan ontvangers, schakelaars en sensoren er bij.

Installeren ging stuk sneller, maar de sensoren werkte niet goed en die gingen dus terug:) Verder prima systeem, nog nooit een "mis" schakeling gehad dus geen feedback zal me eigelijk gestolen kunnen worden.

Maar.... Juist! Het was nog niet leuk genoeg. Ik miste een aantal belangrijke elementen zoals een fatsoenlijk dashboard, een app die je overal op kan gebruiken en dingen zoals het weer.

Dus:
Raspberry Pi, zelfbouw
Tuurlijk kan ik kiezen voor een goed werkend kant en klaar pakket (Domoticz, eerlijk, die events? Fantastisch!) maar tja, dat is ook zo saai. Op dat moment had ik het er met een collega over en die had ook wel interesse, ik als Linux n00b allerlei meuk besteld (ook hier geld, ach, kopuhhhhh!!) en eens begonnen met een dashboard.

Dus in eerste instantie maar eens simpel begonnen:
http://static.tweakers.net/ext/f/3vwU9atiHCe3AWFRvz8lYAZv/medium.png
http://static.tweakers.net/ext/f/wnBxccotOLpqyqSIM96yop3g/medium.png
http://static.tweakers.net/ext/f/UjZPlL6EdO7j7OhXRcAlUjNv/medium.png
http://static.tweakers.net/ext/f/5TtktkvwFNnzZU9x23dP2SRz/medium.png
http://static.tweakers.net/ext/f/SZZE5Kz9bXj5NgKv59jF8BfC/medium.png
Ach, t zag er misschien niet zo mooi uit maar, t werkt toch?

Maar goed, aangezien ik nooit tevreden ben maar gestart aan "Versie 2" met alle dingen er in die ik graag wilt:
  • Schakelen van verlichting
  • Schakelen van thermostaat (E-Thermostaat)
  • Schakelen aan de hand van locatie bepaling
  • Schakelen van Scene's
  • iOS Notificaties
  • "Nodes" (extra devices in andere ruimtes)
  • Bewegingssensoren (maar ook niet actief tussen bepaalde tijden & schakelen op hoeveelheid licht)
  • Contact schakelaars (magneet contacten)
  • Het maken van een planning (inclusief subplanning)
  • Schakelen van verlichting
  • Temperaturen
  • Ga zo maar door
Tuurlijk, je koopt een RXFCom stick en Domoticz en je kan het zelfde maar ach, wat is er nou leuker dan zelfbouw?

Ondertussen is de interface behoorlijk opgeschoond, alles zo "klein" mogelijk gemaakt.. Wat moet er nog meer in?

V2:)
V2

Yup. weer een crap post, geen nuttige bijdragen? Reageer dan niet en ga lekker fappen :)
En ja, sommige mensen zullen denken: tuurlijk, kopen omdat t kan... Ja. Zo ben ik...

SQL Injecties, gewoon je rechten aanpassen?

Door Toppe op maandag 5 december 2011 07:24 - Reacties (33)
Categorie: Invenstory, Views: 8.210

Zat ik vanochtend even op PFZ.nl kom ik via een erg grote omweg de pagina tegen om sql injecties tegen te gaan.

Het volledige artikel kunnen jullie hier vinden maar ik zal ook even een stuk kopiëren:
Door de juiste databaserollen aan te maken, bepaal jij wat een bepaalde rol wel of niet mag doen. Wanneer een rol geen DELETE mag uitvoeren in een tabel of geen SELECT mag uitvoeren op een andere tabel, dan zal dit ook echt niet lukken. Kun je nog zoveel SQL injection op los laten, dat gaat gewoon niet werken.
Ik vind dit raar. Verder op in het artikel staat dat je ook met prepared-statments kan gaan werken etc, maar toch vind ik dit gewoon raar.

Veelal mensen met een kant en klare webhosting, kunnen geen rechten aanpassen op hun database, laat staan dat mensen weten hoe het moet.

Daarbij wil ik dat mijn database de standaard rechten heeft, als ik een tabel wil droppen kan dat niet, omdat ik daar geen rechten voor heb. Het is dus vrijwel gewoon één richtingsverkeer.

Wat is jullie mensen over het aanpassen van de rechten om sql injecties tegen te gaan?


Of welk script/class gebruiken jullie het liefst om sql injecties tegen te gaan?

Voor de geïnteresseerde: Eerste afbeeldingen Invenstory online