Jeg har visst ikke skrevet om det her, men forrige vinter fant jeg til slutt ut av fjernkontrollen til varmepumpa. Jeg var på feil spor lenge, for jeg forventet å se bits som like lange pulser med enten lys eller ikke lys (som RS232 o.l.). Oppdagelsen kom da jeg fant “IRToy raw mode”. Den viser 440us mark, 400us space, 440us mark osv. Da så jeg at de “lyse pulsene” alltid er ca. 400us, deretter følger det en “mørk puls” på 400us for logisk 0 eller 1200us for logisk 1.
For å tolke data laget jeg et kjapt C#-program som bruker IRToy og presenterer resultatet som en liste med bytes i hex-format. Det viste seg at min fjernkontroll sender 27 bytes med en separator mellom 8 og 9. Etterhvert oppdaget jeg også at det siste er sjekksum. Altså 26 byte med data. For finne ut hva som betydde hva modifiserte jeg programmet slik at det uthever bytes (og evt. bits) som er endret siden forrige lesing. Så var det bare å trykke i vei på fjernkontrollen og notere endringene. Jeg fikk ganske fort kontroll på det jeg trengte. Såvidt jeg husker var timer-funksjonen vanskeligst å knekke. Den bruker 12 bits på å sende klokkeslettene som minutter siden midnatt.
Senere har jeg prøvd programmet med fjernkontroller til andre varmepumper og alle sender på samme måte. Antall bytes og separatorer varierer, men prinsippet er det samme.
For noen uker siden begynte jeg å skrive et Arduino-bibliotek for å styre varmepumpa. Jeg initialiserer at bytearray med standardverdier slik jeg har lest dem fra fjernkontrollen. Så har jeg laget mange funksjoner for å manipulere arrayet. setTemp(t), powerOff(), setFanAuto() osv. For å sende bruker jeg det eksisterende biblioteket InfraredRemote. Sist mandag hadde jeg et gjennombrudd, da prøvde jeg å sende og varmepumpa reagerte nesten på første forsøk. Etter bare noen små justeringer hadde jeg full kontroll. Senere koblet jeg IR-dioden med transistor isteden for direkte. Nå bruker den 120mA og fungerer på 6-7 meters avstand. Godt nok for meg.
Nå har jeg begynt å skrive en enkel webserver som bruker biblioteket. Det ser veldig lovende ut. Forhåpentligvis kan jeg styre varmen fra hvor som helst i verden snart.
Jeg satser på å publisere biblioteket, hjelpeprogrammer og teknisk info når jeg får finpusset det litt. Kanskje på engelsk også, jeg har ikke funnet mye info om dette på nett. Sannsynligvis styres AC-enheter på samme måte.