Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Mede-auteur:
  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59

stat

:? Pimatic: smart home automation for the Raspberry Pi

Wat is pimatic?
Pimatic is een open-source domotica framework dat runt op node.js en speciaal is ontwikkeld voor de raspberry pi (www.pimatic.org)

:? Wat zijn de voordelen van pimatic?
Het sterkste punt van pimatic is het regel-systeem. Dit stelt je in staat op om een hele natuurlijke manier vrij gecompliceerde regels in te stellen. Het is ontwikkeld door Oliver Schneider (Sweetpi) en er wordt nog steeds druk aan gewerkt.

Daarnaast zijn er veel plugins voor pimatic ontwikkeld, zoals bijvoorbeeld:
• Cron (voor het kunnen sturen op basis van tijd)
• GPIO (voor het rechtstreeks aansturen van een GPIO, of kijken of deze wel of niet verbonden zijn)
• pilight (Vrijwel alle devices van pilight kunnen geïmporteerd en bestuurd worden)
• ping (is een device wel of niet bereikbaar?)
• pushover (Stuur berichtjes middels de pushover API naar je telefoon)
• Mail (Verstuur mail)
• shell-execute (uitvoeren van CMD opdrachten)
• sunrise (Een skala aan zonsop- en ondergang momenten op basis van locatie
• sysinfo (monitor CPU temp, CPU load, memory load, disksize en pimatic DB size)
• weather (Weersinformatie en voorspelling).

:? Hoe implementeer ik pimatic in mijn domotica systeem thuis?
Sinds kort kan pimatic direct een 433Mhz zender en ontvanger aansturen via de GPIO pins (of een Arduino Nano) van de raspberry pi.
Het is Het is ook mogelijk om middels een plugin op pilight te leunen, eigenlijk gebruik je pilight dan als een soort van device driver voor je RF hardware.


:? Wat heb je nodig?
Als je 433Mhz ontvangers zoals die van KlikaanKlikuit wilt kunnen besturen dan heb je een 433Mhz zender en ontvanger nodig. Die kun je bestellen vanaf ebay. Let op, er is wel een groot verschil in kwaliteit! Zorg dat je een setje koopt die als '433MHz Superheterodyne' word aangeduid.

:? Wat kan je er allemaal mee?
Het mooie van pimatic is dat je alle plugins kunt combineren in het regelsysteem. Koffie heeft in zijn blog enkele mooie voorbeelden gegeven (Koffie's tweakblog: Home automation met Pimatic). Bijvoorbeeld:
code:
1
IF it is after 22:00 and beneden-thermostaat-runprogram is on and pilight-Beneden-dressoir is off THEN $BenedenTemperatuurInstelling = 18

:? OK, maar hoe installeer ik pimatic?
Dat is heel eenvoudig, zie de website: http://pimatic.org/guide/getting-started/
De installatie en eerste keer opstarten duren wel lang, houd daar rekening mee!
Plugins installeren gaat het makkelijkst via de webinterface: na de eerste keer opstarten log je in (default port is gewoon 80) en via het 'hamburgermenu' kan je voor plugins kiezen. Je zult merken dat ook het installeren van plugins vrij veel tijd in beslag neemt.
Als je pimatic al gebruikt en je installeert de pimatic-plugin dan zullen de devices automatisch geimporteerd worden. Als je ervoor kiest direct met pimatic je devices aan te sturen dan moet je de homeduino-plugin hebben (let erop dat je de juiste pins selecteerd!).
Vervolgens maak je de devices aan zoals is gedocumenteerd op de website. Als je ook via de webinterface bijvoorbeeld lampen wilt kunnen schakelen dan moet je de devices toevoegen aan een pagina (via het instellings-icoontje rechtsboven).

:? Heb je nog tips voor het maken van de regels?
- ten eerste: als je de regels in de webinterface maakt dan krijg je steeds opties te zien. Als die opties niet verschijnen dan heb je waarschijnlijk ergens iets verkeerd gedaan.
- als je een regel wilt maken die alleen geldt wanneer een device wordt aangeschakeld (en niet wanneer die device vervolgens ook aan blijft) dan kan je dat aangeven door 'trigger: ' ervoor te zetten.
- verder is het regelsysteem erg intuitief. Het is bijvoorbeeld ook mogelijk een actie aan te zetten met een vertraging 'after 1345 ms' of voor een bepaalde tijd (for 1 hour).

Doel van dit topic is om de (on)mogelijkheden en configuratieopties van pimatic te bespreken en samen problemen op te lossen.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Vandaag mijn Arduino Nano clone binnen gekregen :Y)
Ik maak op dit moment nog gebruik van pilight als driver voor mijn RF, zonder enige filter. Hierdoor heb ik een behoorlijke CPU load.
Overstappen naar volledig RF via pimatic zit er nog even niet in, omdat ik met mijn draadloze temperatuur sensor een fork van KaKu gebruik (ons zogenoemde probe protocol).
Eerst moet mijn temperatuursensor op een andere manier zenden.
De homeduino plugin kent een generic sensor protocol waarmee vrijwel dezelfde informatie verzonden kan worden.
Als ik een attiny kan voorzien van dit protocol, kan ik volledig overstappen naar RF zenden/ontvangen met pimatic.

De Nano draagt behoorlijk bij aan het verlagen de CPU load, van gemiddeld 50% ben ik naar 5 tot 10% load gegaan :)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
De grote vraag is: hoe werkt het nu via wifi?
Als dat ding iets van een API ondersteuning heeft, ben je al een heel eind. Probleem met dergelijk spul is vaak dat iedere fabrikant zijn eigen versie heeft en er dus amper iets te ondersteunen valt.

Ik geloof dat er wel iemand bezig was met RGB in pimatic, maar hoe en wat weet ik even niet.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Om te beginnen zou ik gewoon de echte KaKu hier in Nederland halen.
De gamma heeft vaak (nu ook) kortingsbonnen voor 20% korting op een artikel naar keuze, daar kun je een leuk startsetje voor halen.
De ebay meuk heeft 2 nadelen:
- protocol zal nu nog niet in pimatic zitten
- documentatie en bereik is vaak niet je van het

Bij de action hebben ze een of ander setje met 3 stekkerdozen en 1 afstandsbediening voor 10 eruo (eurodomest). Dat protocol is inmiddels al in pimatic opgenomen: https://github.com/pimatic/rfcontroljs/issues/5

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Een breadboard is 10 keer makkelijker dan een PCB ;)
Met een breadboard klus je met 5 minuten een 'printje' in elkaar. Heb je een fout gemaakt? Geen probleem, even de draadjes veranderen en je bent klaar.
Zelfs voor de langere termijn werkt dit prima.

Mijn Raspberry Pi in de meterkast is overigens voorzien van een adafruit pi plate, waar ik alle componenten op gesoldeerd heb.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
Mooi stukje :Y)

Zelf heb ik ooit geprobeerd een filter mbv een attiny te maken op basis van pilight_firmware, maar dat lukte toen niet. Ik heb het toen gelaten voor wat het is.

Van de week kreeg ik mijn arduino nano clone hebben, waarmee je ook heel makkelijk een filter kunt maken: https://github.com/pimatic/pimatic-homeduino#drivers
Dit resulteerde in een aanzienlijke drop van CPU usage, en ook een veel beter ontvangst.
quote:
ThinkPad schreef op donderdag 23 oktober 2014 @ 21:17:
Waarom het KaKu old protocol? Dan kunnen de buren je KaKu spul ook besturen toch? Juist met het nieuwere protocol zijn ontvanger en zender met elkaar gepaired, en dus een stuk veiliger.

Gamma heeft overigens ook aanbieding, 20% op artikel naar keuze.
Die snap ik even niet?
Zowel kaku_old als kaku_new zijn (net als alle andere protcollen) onvelig.
Als mijn buren kaku_new hebben, kan ik zonder probleem hun unit en ID opvangen en lekker broadcasten met die adressen,
De kans op dubbele adressen is bij kaku_new echter een stuk kleiner.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Draai je npm als sudo ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Ja, ik draai ook sysinfo, maar herken je probleem niet. Misschien even een issue voor openen bij pimatic

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Post ze eens ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Goed bezig :Y)
Je weet dat je ook nog eens een forecast via de weather plugin kunt aanmaken he ;)

Even wat screenshots van mijn setup:

http://zooi.oostindie.com/images/993pimatic_tab1_tn.jpg

http://zooi.oostindie.com/images/125pimatic_tab2_tn.jpg

http://zooi.oostindie.com/images/299pimatic_tab3PNG_tn.jpg

http://zooi.oostindie.com/images/212pimatic_tab4_tn.jpg

http://zooi.oostindie.com/images/695pimatic_tab5_tn.jpg

Alles wat RF is, loopt nog via de pilight plugin. Op de homeduino tab staan dezelfde devices als test voor homeduino.
Ik hoop op korte termijn alle pilight devices eruit te kunnen halen en vervangen voor de homeduino devices.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Zojuist een informatief filmpje op youtube gevonden over pimatic. Welliswaar in het Duits, maar het laat redelijk zien waar alles zo'n beetje zit:



En mocht je eens live willen spelen: http://demo.pimatic.org:8080/ user en pass is demo/demo

Koffie wijzigde deze reactie 25-10-2014 20:21 (19%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
KaKu_dimm word rechtstreeks nog niet ondersteund, is wel in development

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Maar dit topic gaat juist over pimatic, niet over pilight of OpenHAB ;)

@tim427 ik kan je nog steeds niet helemaal volgen? Je kunt toch een button aanmaken en deze een rule laten triggeren?

Ik snap nu wat je bedoelt met het runnen van rules.
Ik denk dat beide feature requests (groeperen van devices en rules aanspreken) wel haalbaar zijn als je ze op github aanvraagt.

Update: vie een omweg zou je via de API een executeAction kunnen aanroepen :+

Koffie wijzigde deze reactie 26-10-2014 12:38 (92%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Vandaag tussen de bedrijven door getest met een attiny, DS18B20 en pimatic_generic protocol.
Ik heb nog problemen met slechte contactverbindingen op het breadboard waardoor hij niet elke keer lekker verzend, maar ik kon iig een temperatuur meten en zenden naar pimatic :Y)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Bleek dus niet zozeer de contactpunten te zijn, maar de attiny :?
Heb een andere attiny geflashed en deze werkt wel goed.

http://zooi.oostindie.com/images/1002014_10_27_21_tn.12_tn.11_tn.jpg http://zooi.oostindie.com/images/8332014_10_27_21_tn.12_tn.56_tn.jpg

http://zooi.oostindie.com/images/7282014_10_26_09_tn.23_tn.49_tn.jpg

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Nee, ik gebruik geen AB. Wel heb ik diverse KaKu zenders achter mijn schakelaars, en dat werkt prima.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Waarom zie ik dergelijke vragen/ideeën niet op github terug als verzoek aan de programmeur ? ;)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
grolle schreef op zondag 02 november 2014 @ 20:27:
Na een lange pauze vandaag eindelijk het breadbord en het LPF filter in elkaar gezet.

Wat is nu de beste manier om pilight/pimatic te laten weten dat ik thuis ben? Constant een mobile telefoon pingen lijkt me wat vreemd? Of maakt dat geen drol uit?
Hangt er vanaf wat je wil doen.
Je zou kunnen denken aan een NFC sticker waar je bijvoorbeeld je telefoon een POST laat doen naar de API als je bij binnenkomst je telefoon tegen de sticker houd.
Of inderdaad je telefoon een vast IP adres geven en deze middels de ping plugin opnemen.
Een collega heeft alle mobile devices zo in zijn config opgenomen. Zodra 1 van die devices op een ping reageert zet hij de variabele $AnybodyHome op 1 om daar weer rules van afhankelijk te laten zijn.

Weer een andere optie is om bijvoorbeeld iets te doen met verlichting of deurcontacten.
Zelf heb ik mijn kachel gekoppeld aan een basislamp in de woonkamer: standaard gaat de instelling terug naar 18 graden vanaf 22:00 uur, tenzij deze verlichting nog aan is.
Als jij altijd via een donkere gang binnenkomt en daar de verlichting moet gebruiken kun je dat als trigger voor thuiskomen gebruiken.

Legio mogelijkheden dus :)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Daar valt natuurlijk omheen te werken door je rule uit te breiden:
code:
1
trigger: Telefoon is absent and it is after sunset and lamp is off THEN turn lamp on

Als je gebruik maakt van een sleepmode op je telefoon, zou je nog gebruik kunnen maken van een extra rul, die bij een $AnybodyHome pas op 0 zet als de telefoon al meer dan x uur niet meer online is (IF Telefoon is absent for 4 hours THEN ..)

Daarnaast zou je natuurlijk ook nog eens je telefoon met tasker zou kunnen instellen dat deze de variabele $ComingHome op 1 zet zodra deze een bluetooth verbinding verliest.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Ik *dacht* dat ik die optie op mijn telefoon (android) ook uit had staan, maar kwam er van de week achter dat er toch een optie aan stond die wifi uit zet bij langdurig standby. Dit gaf direct de verklaring waarom ik in pimatic mijn telefoon zo vaak zag wisselen tussen absent en present.
Vervolgens die optie uitgezet, maar eerlijk gezegd vind ik het teveel nadelig invloed hebben op mijn batterijverbruik.
Ik ben er dus nog niet helemaal uit hoe ik er mee om moet gaan, heb sowieso nog niets gekoppeld aan de aanwezigheid van de telefoons.

Over het gedrag van iphone loopt / liep er op pimatic github een discussie waar dit probleem besproken werd.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Maar of je nu elke 2 minuten iets pushed (ping) of pulled (heartbeat) zal qua batterijverbruik om het even zijn denk ik ;)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Voor de geïnteresseerden: ik heb mijn code voor de attiny/arduinoop github gezet https://github.com/koffienl/pimatic-probe

Hiermee word elke minuut de temperatuur en luchtvochtigheid gemeten en via RF naar pimatic verstuurd. Er staat in development al (untested) code als KaKu_proxy te fungeren.
Het idee is als volgt:
Neem een proxy adres welke je nog niet gebruikt (in mijn geval 101010) en koppel dat adres in pimatic aan devices die slecht bereikbaar zijn.
Wanneer pimatic nu een commando verzend, zal deze door de sensorbox opgepakt worden en verzonden worden via zijn echte adres.
Wanneer het moeilijk bereikbare device met zijn eigen code zend, zal deze ook door de sensorbox opgepikt worden, en via het proxy adres doorgestuurd worden. Als er al per ongeluk het echte adres bij pimatic aankomt, of het proxy adres bij het device, zal er niets gebeuren omdat die adressen niet gekoppeld zijn.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Stuur je de dimmer dan vanuit pimatic aan middels de pilight-plugin of rechtstreeks via RF ?
De dimmer (via eigen RF) in pimatic heeft nog een bug met dimlevels.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Overigens vond ik het dimmen met kaku/pilight/pimatic sowieso ruk en heb ik al mijn dimmers al maanden geleden gefineerd als normale kaku_switch, nooit meer gedoe met dimmen ;)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Ik heb stadsverwarming, dus ik schakel simpelweg een relais als ik warmte wil.
Vreemd dat je met homeduino problemen hebt? Is dat met een arduino, rechtstreeks op GPIO of via een pilight filter?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Dan zou ik zeker overwegen om naar een beter setje over te stappen in combinatie met een Arduino Nano clone. Geeft veel betere resultaten.

De temperatuur is een draadloze sensor: https://github.com/koffienl/pimatic-probe

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Zojuist even een stukje geschreven over het zenden en ontvangen met een arduino ipv via de pimatic-pilight plugin: Koffie's tweakblog: Native RF zenden en ontvangen met pimatic

  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
OK, het heeft wat tijd gekost maar het is me gelukt (met wat hulp van Koffie) om een op attiny85 gebaseerde KaKu-compatibele zender te maken!
Omdat ik me kan voorstellen dat meer mensen dit interessant vinden zal ik proberen het proces hieronder te beschrijven.

Eerst wat feitjes:
- deze zender is in feite een vervanger van de AWMT-003 van KaKu. Je kan hem dus aansluiten op een bestaande lichtschakelaar, waar de zender dan op reageert. Nooit 220V hierop aansluiten!
- Kosten: minder dan 5 euro per unit ;-) (als je arbeidsloon op 0 zet).

Benodigdheden
- RF transmitter. Ik heb er nu 1 gebruikt van een superheterodyne-ontvanger setje, maar via ebay zijn ze voor ongeveer 1 USD per stuk te koop. Als ik meer ervaringen heb zal ik die posten
- Attiny85
- Breadboard, of experimenteerplaat en een soldeerbout
- USB AVR programmer (USBASP is prima, kan je voor 6 euro kopen met snelle verzendtijd in NL)
- Tijd (hoewel het idee van deze tutorial is dat je het binnen een uur lopend zou moeten hebben)

Voorbereiding
- Download en installer Arduino IDE
Reboot windows met de optie om unsigned drivers te installeren (http://forums.laptopvideo...ned-drivers-in-windows-8/)
- Fix installeren : http://forum.arduino.cc/index.php/topic,116674.0.html
- Attiny files installeren (http://highlowtech.org/?p=1695 -> https://github.com/damellis/attiny/archive/master.zip )

Testen
- Sluit de attiny85 op de goede manier aan op de USBASP programmer.
De pinout van de attiny85 is hier te vinden

De standaard pinout van de usbasp is ook makkelijk te vinden.
Sluit een led aan op pin 0 van de attiny85, en de andere kant via een weerstand naar de GND
Arduino IDE starten
Juiste board selecteren, juiste programmer selecteren
Selecteer in de IDE via file-example-basics bijvoorbeeld blink of fade en verander in die code de 13 door een 0.
Vervolgens uploaden, en met een beetje gelukt werkt het in een keer. Deze foutmelding is normaal:
code:
1
avrdude: warning: cannot set sck period. please check for usbasp firmware update.

Als het een nieuwe attiny is zal de knipperfrequentie erg traag zijn. Zet hem daarom op 8MHz (ook nodig voor het zenden van 433Mhz code) en Burn Bootloader (via tools menu). Dan zal het beter gaan. Dit moet dus altijd bij een nieuwe chip.

Het echte werk
Eigenlijk is het heel simpel. Sluit de Attiny en de transmitter aan op 5V en GND, de datapin van de transmitter op een van de pins van de Attiny.
Om de knop te laten werken moet je 1 kant aansluiten aan de GND en de ander aan een van de ongebruikte pins van de Attiny (of 2x als je een dubbele knop hebt).

Voor eens simpele aan-uit knop kan je deze code gebruiken. De data uitgang van de transmitter gaat aan pin0, en de knoppen aan pin3 en pin4.
De code lijkt me vrij vanzelfsprekend. Tussendoor slaapt de attiny, dat verlengt het leven van de batterijen nogal.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <avr/sleep.h>    // Sleep Modes
#include <avr/power.h>
#include <NewRemoteTransmitter.h>
const int txPin = 0;
NewRemoteTransmitter transmitter(111, txPin, 260, 2);
NewRemoteTransmitter transmitter2(112, txPin, 260, 2);

const byte SWITCH = 3; 
const byte SWITCH2 = 4;
int buttonState = 1;         // variable for reading the pushbutton status
int buttonLast = 1;
int buttonState2 = 1;         // variable for reading the pushbutton status
int buttonLast2 = 1;
int notimesmax = 10;

ISR (PCINT0_vect) 
{
// do something interesting here
}

void setup ()
 {
 pinMode (SWITCH, INPUT);
 pinMode (SWITCH2, INPUT);
 pinMode(txPin, OUTPUT);  // RF TRANSMITTER
 digitalWrite (SWITCH, HIGH);  // internal pull-up
 digitalWrite (SWITCH2, HIGH);  // internal pull-up
 
 // pin change interrupt (example for D4)
 PCMSK  |= bit (PCINT3); 
 PCMSK  |= bit (PCINT4); 
 GIFR   |= bit (PCIF);    // clear any outstanding interrupts
 GIMSK  |= bit (PCIE);    // enable pin change interrupts 

 }  // end of setup

void loop ()
 {
  delay (100); 
for(int notimes = 0;notimes<notimesmax;notimes++){//Loop to prevent errors when hitting the 2 buttons simultaneously
 buttonState = digitalRead(SWITCH);
 buttonState2 = digitalRead(SWITCH2);
 if (buttonState != buttonLast) {
  if(buttonState == HIGH) transmitter.sendUnit(0, true);
  if(buttonState == LOW) transmitter.sendUnit(0, false);
  buttonLast = buttonState;
 }
  if (buttonState2 != buttonLast2) {
  if(buttonState2 == HIGH) transmitter2.sendUnit(0, true);
  if(buttonState2 == LOW) transmitter2.sendUnit(0, false);
   buttonLast2 = buttonState2;
  }
 }
 }  // end of loop
 
 
void goToSleep ()
 {
 set_sleep_mode(SLEEP_MODE_PWR_DOWN);
 ADCSRA = 0;            // turn off ADC
 power_all_disable ();  // power off ADC, Timer 0 and 1, serial interface
 sleep_enable();
 sleep_cpu();                             
 sleep_disable();   
 power_all_enable();    // power everything back on
 }  // end of goToSleep

Als je iets ingewikkelders wilt, bijvoorbeeld met dimmers, dan kan dat ook natuurlijk. Idee is dat als je 2x vrij snel na elkaar drukt, dat er dan een dimmermodus optreedt waar je uitkomt door nog een keer op de knop te drukken.
Code heb ik nog niet getest met een zender, alleen met ledjes, dus is onder voorbehoud. Ik zal deze post updaten met nieuwe code. Er zit wat code in die te maken heeft met het feit dat ik 'correcties' wilt laten uitvoeren door pimatic (als je een lamp aan zet die al aan staat dan moet-ie uit). Dat ga ik nog wat verder testen, als het goed werkt dan post ik daar wel wat over.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <avr/sleep.h>    // Sleep Modes
#include <avr/power.h>
#include <NewRemoteTransmitter.h>
const int txPin = 0;
const int LED = 2;
NewRemoteTransmitter transmitter(111, txPin, 260, 2);
NewRemoteTransmitter transmitter2(112, txPin, 260, 2);
NewRemoteTransmitter transmitter3(1011, txPin, 260, 3);
NewRemoteTransmitter transmitter4(1021, txPin, 260, 3);

//const byte LED = 4;  // pin 2
const byte SWITCH = 3; // pin 3 / PCINT4
const byte SWITCH2 = 4; // pin 3 / PCINT4
int buttonState = 1;         // variable for reading the pushbutton status
int buttonLast = 1;
int buttonState2 = 1;         // variable for reading the pushbutton status
int buttonLast2 = 1;
int notimesmax = 10;
int switched1 = 0;
int switched2 = 0;
int dimlevel = 15;
int dimlevel2 = 15;
int startdimlevel = 15;
int lastsignal = 1;
int lastsignal2 = 1;
ISR (PCINT0_vect) 
{
// do something interesting here
}

void setup ()
 {
 pinMode (SWITCH, INPUT);
 pinMode (SWITCH2, INPUT);
 pinMode(txPin, OUTPUT);  // RF TRANSMITTER
 digitalWrite (SWITCH, HIGH);  // internal pull-up
 digitalWrite (SWITCH2, HIGH);  // internal pull-up
 
 // pin change interrupt (example for D4)
 PCMSK  |= bit (PCINT3);  // want pin D4 / pin 3
 PCMSK  |= bit (PCINT4);  // want pin D4 / pin 3
 GIFR   |= bit (PCIF);    // clear any outstanding interrupts
 GIMSK  |= bit (PCIE);    // enable pin change interrupts 

 }  // end of setup

void loop ()
 {
 for(int notimes = 0;notimes<notimesmax;notimes++){
 digitalWrite (LED, HIGH);
    delay (10); 
 digitalWrite (LED, LOW);
    delay (10);
 buttonState = digitalRead(SWITCH);
 buttonState2 = digitalRead(SWITCH2);
 if (buttonState != buttonLast & switched1 == 0) {
  if(lastsignal == 0) {
    transmitter.sendUnit(0, true);
    lastsignal = 1;
  }
  if(lastsignal == 1){
   transmitter.sendUnit(0, false);
   lastsignal = 0;
  }
  switched1 = 1;
  buttonLast = buttonState;
 }
  if (buttonState2 != buttonLast2 & switched2 == 0) {
  if(lastsignal2 == 0) {
    transmitter2.sendUnit(0, true);
    lastsignal2 = 1;
  }
  if(lastsignal2 == 1){
   transmitter2.sendUnit(0, false);
   lastsignal2 = 0;
  }
 //  digitalWrite (LED, HIGH);
 //  delay(500);
 //  digitalWrite (LED, LOW);
 //  delay(500);
   switched2 = 1;
   buttonLast2 = buttonState2;
  }
  if (buttonState != buttonLast & switched1 == 1) {
    if(lastsignal == 0) transmitter.sendUnit(0, true);
    while (buttonState != buttonLast) { //Button was hit again, time to go into the dimmer mode until button is hit again
    dimlevel = dimlevel - 1;
    if (dimlevel<0) dimlevel = startdimlevel;
    transmitter.sendDim(0, dimlevel);  
    buttonState = digitalRead(SWITCH);
    lastsignal = 1;
    }
    transmitter3.sendUnit(0, true);
    buttonLast = buttonState;
    dimlevel = startdimlevel;
    }
    
  if (buttonState2 != buttonLast2 & switched2 == 1) {
    if(lastsignal == 0) transmitter2.sendUnit(0, true);
    while (buttonState2 != buttonLast2) { //Button was hit again, time to go into the dimmer mode until button is hit again
    dimlevel2 = dimlevel2 - 1;
    if (dimlevel2<0) dimlevel2 = startdimlevel;
    transmitter2.sendDim(0, dimlevel);  
    buttonState2 = digitalRead(SWITCH2);
    lastsignal2 = 1;
    }
    transmitter4.sendUnit(0, true);
    buttonLast2 = buttonState2;
    dimlevel2 = startdimlevel;

    }

 }
  
 
// notimes = notimes +1;
// if(notimes>notimesmax) 
 
 goToSleep ();
 }  // end of loop
 
 
void goToSleep ()
 {
 set_sleep_mode(SLEEP_MODE_PWR_DOWN);
 ADCSRA = 0;            // turn off ADC
 power_all_disable ();  // power off ADC, Timer 0 and 1, serial interface
 sleep_enable();
 sleep_cpu();                             
 sleep_disable();   
 power_all_enable();    // power everything back on
 switched1 = 0;
 switched2 = 0;

// notimes = 1;
 }  // end of goToSleep

En hoe ziet het er dan uit
Je kan de zender en attiny koppelen aan 2 of 3 AAA batterijen. In mijn 4cm diepe wanddozen kan ik net een 3AAA-batterijenhouder kwijt + zender + transmitter.
Ik heb het stroomverbruik gemeten en kom dan uit op een geschatte levensduur van 3 900mAH batterijen van 1200 dagen. Waarschijnlijk loopt de batterij sneller leeg, maar in elk geval moet dat genoeg zijn zou ik zeggen.

Plaatje van de printlayout (op experimenteerprint)

Rood=3 of 5V, Zwart is GND (1 voor de stroombron en 1 voor de lichtknop) en die andere zijn voor de lichtknop.

Resultaat:


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
Je gaat er nu steeds vanuit dat de ardu op ttyUSB0 zit, maar dit kan veranderen. Zelfs al bij een snelle disconnect en connect van de USB.
Wij hebben het volgende proefondervindelijk achterhaald: Als je de arduino aansluit (als enige apparaat) krijgt deze altijd USB0 als naam. Ook als je deze loskoppelt en weer aansluit.
Echter, als pimatic gestart is en verbinding met de arduino heeft en je trekt dan de USB kabel eruit en er weer in zal hij als USB1 gezien worden. Je zult dan moeten rebooten.

Ik ga je link over persistent names eens doorlezen, klinkt interessant :)

@Stat mooi werk en goede uitleg. Persoonlijk ben ik nog erg geïnteresseerd hoe KaKu het voor elkaar krijgt om stroom af te snoepen van de bestaande 230V verbinding, zonder dat de lamp aan gaat. Scheelt je namelijk batterijen :)
Heb je nog foto's van je batterijhouder, en het geheel zoals het in de muur zit?

Ik gebruik nu 2 AWMT-003 zenders op 1 dezelfde fysieke plek (heel veel knoppen naast elkaar :P) Deze wil ik nog wel eens vervangen voor een zelfbouw versie op stroom zodat ik niet elke keer de batterijen hoef te vervangen.

Koffie wijzigde deze reactie 09-11-2014 10:51 (31%)


  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
quote:
fjux schreef op zaterdag 08 november 2014 @ 20:32:
Stat,

Ik zou zeggen maak er ook een blog van,

Kans is groot dat het wegvalt als dit topic wat gaat groeien!
Op zich een goed idee, maar ik heb me er even in verdiept en ik kom nog aardig wat karma te kort.

@koffie:
Ik heb de zender nu in een inbouwkast hangen, dus kan even geen goede foto maken. Maar een 3xAAA batterijenhouder past precies achterin een inbouwdoos, en in het hoekje ruimte wat dan over blijft kan je de zender+attiny prima kwijt. Gaat echt ruim.

Wat betreft de stroom: het afnemen van stroom doen ze alleen bij de ontvangers (en die verbruiken ook veel meer stroom natuurlijk). De zenders gaan alleen op batterij, zeker de AWMT-003. Die zou een jaar mee moeten gaan. Volgens mij moet je met de 3 AAA's veel langer mee kunnen, en ik vervang liever die batterijen eens per 3-4 jaar dan dat ik ga experimenteren met 220V.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
DHT11 : Is al een plugin voor
BMP180 : geen idee
MQ-2 : geen idee
AWST-8800 : word gewoon als normale kaku switch verzonden (protocol switch1), gebruik 'm hier thuis ook.
ACDB-7000A : Lijkt mij ook gewoon switch1 ?

Waar loop je precies tegen aan ? Wat heb je nu precies al draaien met wat voor hardware (arduino met RF setje?)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Aansturing van stadsverwarming draadloos gemaakt: Koffie's tweakblog: (stads)verwarming draadloos schakelen

Ik ben nu nog even aan het uitvogelen hoe ik dit het beste in pimatic kan afvangen (pushmessage zenden als er geen confirm terug komt).

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
Eoghlear schreef op donderdag 13 november 2014 @ 12:30:
In hoeverre werkt die zender ontvanger van pilight hier mee?
Lijkt me makkelijker om die in een keer in te pluggen in plaats van zelf te maken.
Geen idee.
quote:
Verder heb ik ooit op je tweakblog gelezen dat je nog wilde proberen om de temperatuur sensor op batterij te laten draaien. Is je dit inmiddels al gelukt?
Ik heb het een keer met een CR232 batterij geprobeert, maar het bereik van de zender was aanzienlijk slechter.
quote:
Verder gebruiken jullie gewoon een standaard raspbian image of halen jullie er nog een hoop uit? Om resources enz vrij te maken.

Ga me hier eens in verdiepen omdat het met de rules makkelijker is dan met pilight
Gewoon raspbian. Eventueel kun je ongebruikte meuk verwijderen maar dat is niet perse nodig voor de werking.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Volgens mij zijn die van de action al opgenomen in pimatic: https://github.com/pimatic/rfcontroljs/issues/5
quote:
Mozart schreef op donderdag 13 november 2014 @ 13:40:
@Koffie, gebruik je pilight-debug om achter de codes te komen die je kunt gebruiken in pimatic?
Nee, gewoon de debug van pimatic aanzetten. Sowieso gebruik ik eigenlijk alleen KaKu, dus ik weet mijn codes al :)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
dj-dano schreef op vrijdag 14 november 2014 @ 21:41:
Jammer is dat er geen goede omschrijving is hoe je nu een zender in pilight of pimatic zet. Anders nog: het is jammer dat er geen knop zit om deze in te leren. Bijna iedereen krijg de installatie werkend samen met een aantal ontvangers etc. Alle andere items kunnen met een plugin functioneren. Misschien een idee.
Kijk eens rond in pimatic door in het linkermenu op Config te klikken.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Als alles volledit up to date is: http://ip_van_pi/#config

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Gooi ze eens weg vanuit de pimatic/node_module/.. weg ?
Of anders even met de hand installeren : sudo npm install pimatoc-pluginnaam

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Ik zou echt gewoon alles helemaal weggooien en opnieuw installeren :?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
FicoF schreef op zaterdag 22 november 2014 @ 23:46:
Wat is het verschil tussen pilight en pimatic?
Pimatic is beter dan pilight :Y)
quote:
Ik wil enkele wcd's gaan schakelen op tijd en ook via mijn telefoon kunnen dimmen middels kaku. Twijfel een beetje wat ik moet gaan gebruiken.

Belangrijk ia dat het platform breed ondersteund wordt, dus niet afhankelijk van 3 ontwikkelaars oid.
Pimatic heeft een veel veel betere GUI, met user/admin logons, SQLite database, rule systeem (al heeft pilight dat nu ook sinds een paar dagen geloof ik).
Voor pilight kan ik op een paar punten er naast zitten, ik gebruik het namelijk al een tijd niet meer.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
pcprutser schreef op dinsdag 25 november 2014 @ 23:52:
Eindelijk alles binnen gehad om mijn RPi, 433mhz zender/ontvanger + filter noobproof in elkaar te zetten, te testen en nu uiteindelijk te verwerken in een klein 'kastje'. Dat werkt dus.
Maar nu ben ik inmiddels al de hele avond aan het prutsen om mijn devices in een groep te krijgen. Dit wil maar niet lukken.
Nu heb ik de volgende code in de config geklopt
JSON:
1
2
3
4
5
6
7
8
9
10
11
"groups": [
    {
      "id": "verlichting",
      "name": "Verlichting",
      "devices": [{
        "deviceId": "lampBed"
        }],
      "rules": [],
      "variables": []
    }
  ],

Echter als ik Pimatic dan weer start krijg ik de error:
#/groups/0/devices/0: Should have type string, was: object

Echter bij pages gebruik je wel de deviceId tag. Uiteraard mis ik hier iets. Maar ik weet niet welke iets en googlen heeft mij ook nog niet verder geholpen. |:(
Waarom maak je alles via je tekst editor aan, als je groups en pages ook gewoon via de GUI kunt maken en rangschiikken :?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Zie mijn blog :)

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
half half .. er is een unsupported URL hiervoor : /#edit-device
Via de URL /#config kun je 'live' je config editten.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Nee, inleren kan niet.

an sich is het niet veel werk : zet debug logging aan (zie blog), doe een tail -f pimatic-daemon.log en broadcast je KaKu spul.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Copy/paste eens het stukje uit je config waar de user rollen en hun rechten gedefineerd zijn ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Onder "controlDevices": true, de volgende regels toevoegen:
code:
1
"config": "write",


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
K-Jay schreef op donderdag 27 november 2014 @ 15:42:
Ik weet inmiddels dat ik de transmitter moet aansluiten op pin 2,4 en 6 van mijn Pi. Weet iemand ook hoe ik de receiver moet aansluiten? Ik heb deze kit.
Ik zou, als het even kan, een arduino nano bestellen. Kost 3 a 4 dollar.
Vervolgens sluit je de zender en ontvanger aan op de arduino (zie mijn blog) en de nano via USB aan je pi.
In plaats van circa 40% a 50% CPU load heb je dan nog maar 1% tot 5% CPU load.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Het helpt om een jumperwire op de ANT te zetten (de andere 3 van die 4 pinnen kun je laten voor wat het is).

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Eerste regels van de config.json:
code:
1
2
3
4
5
6
7
{
  "settings": {
    "debug": true,
    "logLevel": "debug",
    "authentication": {
      "secret": "xxxxxxxxxx"
    },


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Gooi je config eens op pastebin ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
Moet je wel de link plaatsen ;)
quote:
dj-dano schreef op zaterdag 29 november 2014 @ 18:04:
Beste koffie,
Misschien een longshot, aangezien weinig mensen zenders gebruiken, maar misschien een plugin voor schrijven. Ik denk zelf dat er best wel animo voor is.
Voor mij persoonlijk was dit een grote wens maar aangezien de moeilijkheid, ga ik over over gpio schakelen.
Ik snap even niet wat je bedoeld ?
quote:
Kodess schreef op zaterdag 29 november 2014 @ 23:23:
Als je in een rule zegt If After 22:00, tot wanneer gaat hij dan door? tot 24:00 dezelfde dag? Of gewoon voor eeuwig.
Volgens mij telt die rule tot 23:59 , daarna is een nieuwe dag.
Persoonlijk heb ik al mijn rules zo opgebouwd dat deze een dag van 24 uur bestrijken.
Mijn rule voor 's nachts is dus verdeeld over 2 rules: Eentje tot 0:00 en eentje na 0:00

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Zender uitlezen is toch echt heel simpel:
- debug aanzetten in je config
- tail -f pimatic-daemon.log
- druk op een knop van je zender en zie de code voorbij kome

debug level heb ik in je config gezet: http://pastebin.com/ETgFrD2b

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Als je WEL een receive van andere RF devices binnen krijgt, maar niet van die ene, dan lijkt het met aan dat ene apparaat te liggen :?
Wat zie je dan wel en niet in je log verschijnen ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
met tail pak je allen het laatste stukje, en laat je deze over je scherm scrollen bij een update.
Doe eens een cat pimatic-daemon.log
Of doe een FTP naar port 22 van je pi en download het bestand via SSH.

Verder is het misschien verstandig om je iets meer te verdiepen in linux

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
20% CPU load is inderdaad hoog. Ik zit gemiddeld op 6% ofzo.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
CurlyMo schreef op donderdag 04 december 2014 @ 11:02:
Dat wil niet zeggen dat ik 6% ook nog hoog vind. Klopt het dat deze oplossing in arduino C is geschreven en niet in native c? Misschien dat daar de overhead in kan zitten. Hetgeen waar ik mee aan het experimenteren was had volgens mij minder CPU load. Echter kunnen we dat pas vergelijken wanneer dat helemaal klaar is.
Geen idee, maar volgens mij maakt het niet uit in welke taal het geschreven is. De afhandeling gebeurt namelijk in de Arduino zelf. Pas als het vrijwel zeker weten een protocol is, word het aan de daemon gegeven.Of de afhandeling daarvoor traag is of niet maakt dus niet zoveel uit.

Die 6% van mij was wat hoger ingezet. Daadwerkelijk gebruik ligt lager en is ook totaal CPU usage, niet die van de daemon alleen.

Zonder filter had ik echt last van lag en freezes, tegenwoordig loopt het als een zonnetje.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27

code:
1
IF lamp 1 is off and deur is opened THEN turn on lamp 1 after2 seconds

Vooral de KaKu deurcontacten zenden een stortvloed aan broadcast uit als ze open/dicht gaan.
Kans is dus groot dat jouw pimatic-broadcast niet gezien word omdat de lamp nog de broadcast van de deurcontact aan het verwerken is.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Er zijn er al zat die via de een of andere manier een slimme meter uitlezen en vervolgens in pimatic loggen.
Zie bijvoorbeeld https://github.com/Yves911/generic_433_sender en op de pimatic issue lijst.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
fjux schreef op maandag 08 december 2014 @ 11:45:
Enige is wat ik wat omslachtig vind is de herkenning van nieuwe devices (debug aan zetten, pimatic opnieuw opstarten ect)
Wat ik niet wist, is dat dit blijkbaar helemaal niet nodig is :o
Ook al staat debug uit, kun je toch gewoon de data in de GUI terugvinden:


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
incmve schreef op vrijdag 12 december 2014 @ 10:32:
Nee geen ad-hoc netwerk maar met 2 pimatic installaties kan je ze wel "laten praten" d.m.v. de API.
+1

Van de week even zitten prutsen om de ene pimatic een temperatuursensor realtime te laten pushen naar een andere pimatic. Werkt prima.
Geen idee of, en zo ja op welke termijn er een mash netwerkmogelijkheid voor pimatic komt.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Waarom verwacht je dat switch1 er tussen zou staan?
Switch1 is KaKu protocol. Blijkbaar voldoet jou afstandsbediening aan de protocollen die je voorbij ziet komen :)
Hier staan alle protocollen : https://github.com/pimati.../blob/master/protocols.md

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27

code:
1
2
IF $waterin.temperature changes THEN 
execute "curl --silent -X PATCH --header \"Content-Type:application/json\" --user \"usr:pwd\" --data '\{\"type\": \"value\", \"valueOrExpression\": $waterin.temperature\}' http://192.168.2.118:82/api/variables/ZwembadWaterIn > /dev/null"


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
CurlyMo schreef op vrijdag 19 december 2014 @ 17:45:
Ja, maar dat noem ik geen ondersteuning ;)
Heb ik ook nooit gezegd ;)
Aan de andere kant: her werkt wel

  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
Iemand anders soms het probleem dat de receiver niet alle signalen oppikt? Ik heb er een arduino nano tussen zitten inmiddels, maar toch komt het voor dat er een signaal gemist wordt. Het licht schakelt wel, dus het signaal wordt goed verstuurd. Met pilight had ik daar geen last van (dus zal denk ik niet liggen aan antenne's oid).

Iemand suggesties?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Begin eens met posten met de juiste [ code ] tags aub :
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
pilight config:
{
"light": {
"name": "Verlichting",
"1": {
"name": "Boekenplank",
"protocol": [ "kaku_switch" ],
"id": [{
"id": 8934706,
"unit": 0
}],
"state": "on"
}
}
}
pimatic config:
"devices": [
{
"id": "pilight-light-1",
"name": "Boekenplank",
"class": "PilightSwitch",
"inPilightConfig": true,
"location": "light",
"device": "1",
"lastState": false
},

Overigens kun je gewoon opzoeken hoe je zo'n device aanmaakt in pimatic:
https://github.com/pimati.../blob/master/protocols.md
https://github.com/pimatic/pimatic-homeduino

Koffie wijzigde deze reactie 27-12-2014 09:34 (17%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
dj-dano schreef op zaterdag 27 december 2014 @ 10:31:
Juiste [ code ] tags ? dit zijn de juiste.
Nee, de code tags van het forum: Overzicht van UBB-codes #tag_code
quote:
Daarnaast heb ik ze al zoveel opgezocht hoe ze aan te maken, ze werken niet bij mij.

contact1
Type: contact
Brands: KlikAanKlikUit
Protocol Options:
id (binary)
unit (number)
Supports:
state
all

Maar waar zijn de voorbeelden voor als het fout gaat.
Voorbeeld staat letterlijk in de link die ik je gegeven heb: https://github.com/pimatic/pimatic-homeduino -> https://github.com/pimatic/pimatic-homeduino#switch-example

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Het maakt niet uit of de RF op de GPIO of een nano zit, de code voor een device werkt in beide gevallen hetzelfde.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
dj-dano schreef op zaterdag 27 december 2014 @ 12:55:
Dus als ik het goed begrijp moet ik gewoon pimatic installeren plugin pimatic-homeduine installeren. Plugin in de config plaatsen en de gpio pinnen wijzigen. Dan kan ik de rfswitch wel gebruiken.
Ja, zie de eerder gelinkte paginas voor config bij GPIO: https://github.com/pimati...th-attiny45--85-prefilter
code:
1
2
3
4
5
6
7
{
  "plugin": "homeduino",
  "driver": "gpio",
  "driverOptions": {},
  "receiverPin": 0,
  "transmitterPin": 4
}

quote:
Nelus82 schreef op zaterdag 27 december 2014 @ 13:58:
Ik heb een probleem met mijn nieuwe configuratie.

Ik ben inmiddels over naar een alleen maar pimatic opstelling en die bevalt tot op heden prima.
Alleen ik krijg geen feedback in mijn gui.

Wat bedoel ik hiermee;

- Wanneer ik schakel in mijn gui werkt alles perfect en snel
- Wanneer ik mijn kaku afstandsbediening gebruik zie ik in de log files ook dat de pi de pulsen ontvangt, en de verlichting schakeld.

Alleen in de gui past hij niet de status aan.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
      "protocols": [
        {
          "name": "switch1",
          "options": {
            "id": "xxxx4978",
            "unit": "1"
          }
        }
      ],
      "xConfirm": false,
      "xLink": "",
      "xOnLabel": "Aan",
      "xOffLabel": "Uit",
      "id": "woonkamer-dressoir-lamp",
      "name": "Dressoir lamp",
      "class": "HomeduinoRFSwitch"
    },

Post eens een stukje van je debug log van het ontvangen ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Long shot .. zet ID en class eens boven de protocols optios:
code:
1
2
3
4
5
6
7
8
9
10
11
12
{
  "id": "woonkamer-dressoir-lamp",
  "name": "Dressoir lamp",
  "class": "HomeduinoRFSwitch",
  "protocols": [{
    "name": "switch1",
    "options": {
      "id": 12704978,
      "unit": 1
    }
  }]
}


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Heb je dit met 1 specifiek device, of met alles ?
Is alles up to date?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Je hebt toch niet pilight draaien die op dezelfde pinnen beslag legt ?
Je weet ook zeker dat de pinnummering in je config klopt? Je moet dus de WiringPi nummering aanhouden.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
probeer dit eens:
code:
1
it is not December 31-2014


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
probeer eens iets als 'it is before 30 december or after 1 januari' ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
is not zit er blijkbaar niet in, dus dan blijft before en after als enige optie over:
code:
1
IF it is before December 31 or after January 1 THEN log "het is vandaag niet 31 december"


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
CurlyMo schreef op dinsdag 30 december 2014 @ 21:55:
@Koffie
Verbaasde me eerlijk gezegd dat het niet mogelijk is om een device voor x tijd aan te zetten if not vergelijking te doen. [...] :+
Mwa, kost wat meer tekst, maar deze rule werkt toch echt:
code:
1
IF it is before December 31 or after January 1 THEN log turn lamp on for 10 minutes

:+

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Dit geld voor ALLE kaku devices?
Zie je als je met de AB schakelt echt je ID voorbij komen in de debug? Wat zie je in de debug als je vanuit de GUI schakelt ?
Is het echt KaKu of een china-ding wat op switch1 reageert ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Zo te zien heeft het echt iets met je config te maken. Als ik jouw config in mijn pimatic zet, kan ik je probleem reproduceren.
Ik zou je devices eens opbouwen met handmatige edit, in plaats van de unsupported GUI pagina. Blijkbaar gaat daar toch iets mis ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Wat is de toegevoegde waarde om dit via de Nano te laten lopen tov rechtstreeks via het OS ?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Jup, pimatic kan tegenwoordig ook zelf RF zenden : Koffie's tweakblog: Native RF zenden en ontvangen met pimatic
In mijn blog ga ik er vanuit dat je een Arduino Nano tussen je ontvanger en de pi hebt zitten, maar het kan kan ook zonder of met een bestaand pilight filter.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
https://github.com/pimati...th-attiny45--85-prefilter
code:
1
2
3
4
5
6
7
{
  "plugin": "homeduino",
  "driver": "gpio",
  "driverOptions": {},
  "receiverPin": 0,
  "transmitterPin": 4
}


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
mcgaag schreef op zondag 11 januari 2015 @ 09:36:
Ik ben bezig met pimatic en heb al een en ander voor elkaar. Ds18b20's worden weergegeven en de kaku schakelaars bediend. Ik wil ook graag de thermostaat oplossing gebruiken maar ht lukt mij niet om een variabele zoals $temp_instelling toe te voegen in de config.json. Kan iemand mij wijzen op een plek waar dat wordt uitgelegd? Of even het gedeelte van zijn werkende config.json laten zien?
Maak je al gebruik van de nieuwe thermostaat device?
code:
1
2
3
4
5
6
7
{
      "id": "thermostaat",
      "class": "DummyHeatingThermostat",
      "name": "Thermostaat",
      "comfyTemp": 20,
      "ecoTemp": 18
    },

Te gebruiken in rules als:
code:
1
IF it is before 06:00 and mode of thermostaat = auto THEN set temp of thermostaat to 18°C


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Eigenlijk is het relatief simpel. Het is, zoals de naam al zegt, een dummy device.
Uit zichzelf doet het niets. Maar je kunt de 3 modi detecteren met een rule: mode if thermostaat = auto/manu/boost,
De temperatuur kun je ook uitlezen : temperatureSetpoint of thermostaat = xx.
Vervolgens kun je zowel modus als temperatuur ook weer wijzigen met een rule : set mode of thermostaat to "auto" en: set temp of thermostaat to 18

Zodra de temperatuur op een waarde van de setting eco of comfy komt (handmatig of via een rule) word automatisch de betreffende knop (eco of comfy) blauw.

Ik gebruik zelf auto als equivalent van 'volg programma'. De knop auto is dus een 'temperatuur continu'. Zodra de modus op boost staat, word de huidige temperatuur setting in een variable gezet, om vervolgens de setting met 2 graden te verhogen. 1 uur later word de vorige waarde weer teruggezet.

Schakelen op basis van de setting en een gemeten temperatuur kan van enorm simpel:
code:
1
IF $probe-woonkamer.temperature < $thermostaat.temperatureSetpoint THEN turn warmte on

Tot wat complexer:
code:
1
IF $probe-woonkamer.temperature < ($thermostaat.temperatureSetpoint + $BenedenThermostaatMarge) and warmte is turned off and $BenedenWarmtOp = 0 and $BenedenStopWarmte = 0 for 5 minutes THEN turn warmte on after 10 seconds


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Kijk even hiernaar : https://github.com/pimatic/pimatic/issues/294
Wat voor device is je deurbel?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Voor zover ik kan zien, kan het het niet met een contact-device.
Ik denk dat je even een feature request moet aanvragen in het aangehaalde topic: https://github.com/pimatic/pimatic/issues/294

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Heb je een Arduino of filter op je ontvanger? Als je dat niet hebt, pak je al veel CPU load. Als daar dan ook nog eens de zware update bij komt kan het heel lang duren.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Wat ik nog steeds niet snap : waarom defineer je een schakelaar als deurcontact?
De AWST-8802 heeft een specifieke schakelrichting voor aan en uit.

Je kunt ook rules maken die triggeren op het onvtangst van een protocol en status, ongeacht of deze al in die modus staat. Ik weet even niet uit mijn hoofd hoe je daar op moet triggeren.

edit :
code:
1
IF schakelaar1 receives off THEN turn lamp off

Koffie wijzigde deze reactie 15-01-2015 09:13 (9%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Word het als een protocol herkend door pimatic?

Ik kwam zojuist tegen sneakpreview tegen :o

https://drive.google.com/...VniTzQ1hieXB4ZWc5a2c/view

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Oh wacht nu snap ik je vraag. Het REV protocol is een port van pilight, welke alleen v1 en v2 ondersteunen?
Kwestie van (als je een receiver hebt) data opvangen en een protocol request indienen.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
Gijs zijn Baas schreef op vrijdag 23 januari 2015 @ 16:49:
@koffie;

Vraagje ben jij ook koffienl op pimatic ?
Jup :)
quote:
Heb gezien dat je gebruik maakt van de "DummyHeatingThermostat" en via onderstaande link zie je een exta veld
https://cloud.githubuserc...1e4-9864-992ede249c8b.JPG
"Tijd nodig om op te warmen"

Hoe kun je een eigen aangemaakte variabele in beeld brengen is hier ook een speciale Dummy voor?
Via de URL http://ip/#edit-device een VariablesDevice toevoegen

  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
Zoals eerder gepost ben ik zelf wandschakelaars aan het maken voor pimatic. Werkt op zich allemaal prima, maar ik merk dat soms de antenne problemen geeft. Ik ben gewoon draden van 17.3 cm gaan gebruiken omdat het daarmee beter lijkt te gaan. Soms zit ik echter in de situatie dat de lamp het wel doet, maar dat pimatic of helemaal niets ontvangt of een vervrongen signaal (dat pimatic niet kan decoderen).
Hebben jullie hier ervaring mee?
Ik gebruik trouwens van die goedkope zenders, 433 Mhz. Staat FS1000A op.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Hoewel mijn evraring is dat het zenden niet het probleem is bij een slecht setje, zou ik adviseren om op ebay een superheterodyne RF setje te scoren. Kost je circa 7 dollar (Soms goedkoper als je een bod kunt plaatsen) maar wel veel beter.

  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
Dacht inderdaad dat zender wel zou moeten gaan. Ik heb nog zo'n superheterodyne setje liggen, zal die eens proberen. Voltage is wat lastig te realiseren (ik heb net plaats voor 3x AAA...). Of ik zou een omvormer oid moeten gebruiken.
Ik vraag me alleen af of het bereik nu echt het probleem is. Het rare is dat, zelfs als ik op 1 plek ben, de antenne ook lijkt uit te maken voor de inhoud van het signaal. Het wordt dan ineens niet meer herkend door pimatic. Misschien is dat helemaal niet raar, maar ik ging er in mijn naiviteit vanuit dat het alleen om bereik zou gaan.

  • stat
  • Registratie: mei 2005
  • Laatst online: 17-11 09:59
Daar heb je gelijk in, maar ik wil graag ook behoorlijk wat capaciteit hebben.
Ik heb de superheterodyne zender nog geprobeerd, en het gaat iets beter, maar is nog steeds niet fantastisch.
Ik ben nu aan het kijken wat ik aan de ontvangstkant kan doen.
Deze antenne vond ik op het pilight forum: http://forum.pilight.org/Thread-Antenna?pid=655#pid655
Die ga ik maar eens proberen. Morgen even het goede draad kopen.

Even een update: nieuwe antenne werkt niet spectaculair beter (maar met iets te dun draad gedaan, wordt nog herhaald dus).
Ook heb ik even een 9V batterij aan de zender gehangen, dat verbeterde wel (nu lukt het ook zonder antenne!) maar blijf toch af en toe signalen missen.

Wat uiteindelijk het best lijkt te helpen is gewoon het aantal repeats toe laten nemen. In de library die ik gebruik (newremotetransmitter) kan je dit in machten van 2 opgeven: ik had 2 (=4) en nu 3(=8). 4 schijnt ook wel erg minimaal te zijn (reden was dat ik het signaal wilde corrigeren met pimatic, lang signaal = traag corrigeren).

stat wijzigde deze reactie 27-01-2015 19:58 (42%)


  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
lolgast schreef op dinsdag 27 januari 2015 @ 20:02:
Even inbreken :) Ben sinds kort ook druk bezig met pimatic en loop nu tegen een praktisch probleem aan. Wij zijn een Apple gezin... Beide een iPhone dus, waardoor het niet mogelijk is om regels aan te maken op basis van WiFi verbinding met mobile device. Bijvoorbeeld voor beide uit huis.

Nu zat ik te denken wat een oplossing kan zijn en kwam ik uit bij NFC. Ik ben inmiddels wat uurtjes verder met zoeken, maar kan niet vinden of je NFC ook kunt koppelen op de manier die ik voor me zie. Waar ik nu aan zit te denken is:
Sleutelhanger langs een 'RPi + NFC tranceiver' halen -> resultaat doorsturen naar RPi waar pimatic op draait. Weet iemand of dat haalbaar is en zo ja, kan ik een zetje in de juiste richting krijgen qua leesmateriaal? Ik zie een hoop artikelen om NFC werkend te maken op een RPi, maar mis de koppeling naar pimatic. Andere voorstellen die wellicht kunnen wat ik wil zijn uiteraard ook welkom ;)
Een NFC reader uit China is niet duur, en kun je ook met een arduino (attiny wellicht ook) en een RF zender of wifi zender met pimatic laten babbelen.
De vraag is, zie jij het zitten om structureel in te moeten loggen als je thuis komt?
En hoe weet pimatic (voordat je die NFC sleutelhanger er langs gaat halen) dat je uberhaupt weg was ? Wil je dan ook eerst uitloggen door die chip er langs te halen ?

In de eerste instantie dus een leuk idee, maar je moet je afvragen of het in de praktijk echt vol te houden is.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Je kan via een tasker achtig iets (geen idee of dat voor iphone bestaat) een soort heartbeat naar pimatic laten versturen elke 5 minuten ofzo?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Als er tasker voor ios bestaat, kan je toch net zo goed direct tegen pimatic aanpraten ipv via pilight :?

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
quote:
CurlyMo schreef op dinsdag 27 januari 2015 @ 21:45:
Ik ken tasker niet, weet alleen dat iemand er een pilight plugin voor heeft gemaakt.
Er is geen plugin voor tasket specifiek voor pimatic, maar tasker kan wel rechtstreeks tegen de pimatic API aanpraten. En dan kun je dus een soort heartbeat laten versturen, of wat voor actie dan ook uitvoeren.

Maar nogmaals : ik heb echt geen idee of tasker (of een soortgelijke app) op ios werkt. Ik ben alleen bekend met android.

  • Koffie
  • Registratie: augustus 2000
  • Laatst online: 18-11 15:27
Of je maakt je eigen alarm op basis van een keypad met RFID pas/token welke via wiegand protocol het ID uitspuugt. Deze data pass je dan door naar pimatic om het systeem van alarm af te halen.
Weet ' ie ook meteen dat je thuis bent :+
Pagina: 1 2 3


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Autosport

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True