Commit Graph

53 Commits

Author SHA1 Message Date
Pim van Pelt 8c6b2f399b add timespec_empty() 2018-11-04 19:55:54 +01:00
Pim van Pelt 9af4c4b3a6 Add notes for Sonoff 4CH updates (ensure to copy out timespec.chan*; remove 1MB build 2018-11-04 19:41:14 +01:00
Pim van Pelt 8624473386 Bump version to 1.4 -- now with timespec handling! 2018-11-04 19:19:36 +01:00
Pim van Pelt 61ddb0334e Commit timespec to file on Timespec.Add; Unlink timespec file on Timespec.Clear; Initialize timespec from file in channel_init() 2018-11-04 19:19:17 +01:00
Pim van Pelt 8c4864b199 Remove danlging vim swap file 2018-11-04 18:57:37 +01:00
Pim van Pelt f5ea934dfb Add timespec_{read,write}_file() and unit tests 2018-11-04 17:40:12 +01:00
Pim van Pelt 5b79487ab8 Format with uncrustify 2018-11-04 16:45:23 +01:00
Pim van Pelt 31dcf28ff0 Add Timespec.{Get,Clear,Add} RPCs 2018-11-04 16:45:05 +01:00
Pim van Pelt 560c81cbfd Add channel_get_timespec() 2018-11-04 16:44:47 +01:00
Pim van Pelt f8a13112b6 Fix signedness comparison for ESP8266 compiler 2018-11-04 16:22:09 +01:00
Pim van Pelt a01e548249 add timespec_clear_spec() and timespec_get_spec() 2018-11-04 16:17:35 +01:00
Pim van Pelt 0ad33f5fbc Add timespec() and channel_override logic -- so we can install a time specification with which the channels are driven, but yet allowing a human override (either by RPC or by Button) 2018-11-04 15:44:17 +01:00
Pim van Pelt d5778c6fba Add timespec_match_now() based on localtime() 2018-11-04 15:43:32 +01:00
Pim van Pelt af9db0395d Add SNTP library 2018-11-04 15:42:08 +01:00
Pim van Pelt 5c26d2d43b format with uncrustify 2018-11-04 14:19:00 +01:00
Pim van Pelt 8cfcfc9af3 Add mgos_gpio_read(); mgos_[mu]sleep() 2018-11-04 14:17:00 +01:00
Pim van Pelt 5ebd4b112a Make default app.config be nodemcu v2 board; Clear sensors.dht_gpio, make users actually set this 2018-11-04 14:11:10 +01:00
Pim van Pelt 3ae64cfc37 Add standard NodeMCU v2 board 2018-11-04 14:10:39 +01:00
Pim van Pelt 5a39c618ce Allow LED and Relay logic level to be inverted 2018-11-04 14:10:28 +01:00
Pim van Pelt b29edab495 Add 'duration' argument to Channel.Set RPC call 2018-11-01 21:01:37 +01:00
Pim van Pelt 75eccd0447 Move to a struct with args in channel_set_cb() 2018-11-01 20:57:24 +01:00
Pim van Pelt 8eb6bcb112 add channel_set_duration() for timer based polls 2018-11-01 20:29:51 +01:00
Pim van Pelt 3140cc72b8 Log to chumbucket by default, set the device hostname to 'test-device' 2018-11-01 14:48:01 +01:00
Pim van Pelt 6434cb6db0 Sleep the MCU 250ms after relay on switches, to avoid brownouts. Scan the pushbutton for 100ms to ensure it was still pressed, to avoid RFI from triggering 2018-11-01 14:47:35 +01:00
Pim van Pelt d332f08da4 Make distinction between channels toggled via GPIO (button) or RPC 2018-11-01 14:31:59 +01:00
Pim van Pelt f1614f3e6e Remove 50ms sleep time, it doesn't help 2018-11-01 14:12:13 +01:00
Pim van Pelt d673cda325 Remove cooldown check - this is not what we're looking for 2018-11-01 14:11:37 +01:00
Pim van Pelt 08453f3b5d Log by default to stderr/stdout, make user disable this explicitly for units which use GPIO 1,3 2018-11-01 14:11:21 +01:00
Pim van Pelt 23b2e37a1f Add some notes to README 2018-11-01 14:10:40 +01:00
Pim van Pelt 7c9870aa32 Order the sonoff-4ch channels correctly (idx0 == chan1) 2018-11-01 13:50:17 +01:00
Pim van Pelt 7a5507d691 Set FLASH_SIZE to 1MB to flash ESP8285 Sonoff 4CH devices 2018-10-31 13:51:26 +01:00
Pim van Pelt 64fc98dcf7 Add a 50ms delay after switching relays, so we avoid RF spikes from inductive loads triggering capacitive touch sensors 2018-10-31 13:51:02 +01:00
Pim van Pelt 818c27c7ce Add rpc-ws library; Remove UDP logging 2018-10-28 13:11:54 +01:00
Pim van Pelt 3e3d9dcbe0 Add timespec -- add tests for it too. 2018-10-28 12:47:42 +01:00
Pim van Pelt 9ee393bc8a Rebase private OTA libs on 2.7 2018-10-28 12:12:24 +01:00
Pim van Pelt 497c62b382 Add empty mgos_ro_vars.h 2018-04-17 18:14:51 +02:00
Pim van Pelt 56a2ec21ab Refactor prometheus-sensors into top-level directory; pull in DHT library 2018-04-17 18:12:41 +02:00
Pim van Pelt 491ba88d1a Formatting 2018-04-17 15:00:29 +02:00
Pim van Pelt 8bf7b919cc Factor out DHT
It's now its own library (in git@git.ipng.nl:pim/prometheus-sensors)
2018-03-04 16:38:54 +01:00
Pim van Pelt 6898ff8349 Add a simple Prometheus exporter. 2018-02-25 19:59:32 +01:00
Pim van Pelt 13d1ab1fa5 Add app.dht_gpio flag to find DHT sensors
Parse this comma separated string to find GPIO pins on which we must
enable DHT sensors.  Seperators are space and comma.
Can be empty, single GPIO pins, or a list:
app.dht_gpio=""
app.dht_gpio="5"
app.dht_gpio="5,4,14"
app.dht_gpio="5 4 14"
app.dht_gpio="5, 4 14"
2018-02-13 01:15:14 +01:00
Pim van Pelt c72ea2af41 Keep a list of DHT sensors
s_dht is a list of MAX_DHT elements. Pass the index to the callback
so we can report on individual sensors by 0-based index.

Mon Feb 12 18:26:12 2018 - esp8266_052EE8/stat/dht {"idx":0, "temp":18.80, "humidity":31.6}
Mon Feb 12 18:26:12 2018 - esp8266_052EE8/stat/dht {"idx":1, "temp":18.70, "humidity":36.4}
Mon Feb 12 18:26:12 2018 - esp8266_052EE8/stat/dht {"idx":2, "temp":18.80, "humidity":39.5}
2018-02-12 18:25:36 +01:00
Pim van Pelt bb62e9b6ae Add DHT support.
Very rough stab just to test the waters -- this will need some
more work.

For now, hard code 4,5,15 pins (as per Sonoff SV), but before
rolling this out, add a config flag for this behavior.

Neat trick -- the presence of dht library in mos.yml triggers
inclusion of the code via define -DMGOS_HAVE_DHT=1
2018-02-11 13:20:36 +01:00
Pim van Pelt b1472d059d Respond to upstream refactor
https://github.com/cesanta/mongoose-os/commit/6d81a9928ec86b5fcf66bd2932fe3f3b9eff416b
2018-02-11 12:58:32 +01:00
Pim van Pelt a0909ab6a0 Blink statusled on recv/xmit MQTT messages; debounce 200ms; trigger button on release; Prime for sonoff-basic // sonoff-sv 2018-01-25 14:52:55 +01:00
Pim van Pelt 7ea1e26020 Fix JSON escaping and scoping 2018-01-24 14:27:58 +01:00
Pim van Pelt 4a083555e8 Clean up RPC response.
- Refactor mqtt_publish_stat() to take va_list
- Make publish_stat format its response with json_vprintf() so it is
  valid JSON.
- Call publish_stat in channel_set, the only place where the GPIO state
  changes
- Return (valid) JSON response in all RPCs
2018-01-24 14:08:29 +01:00
Pim van Pelt 118eb14447 Rewrite statusled implementation.
- Read it now from app.config JSON file.
- Allow for inverted status leds (Sonoff et al)
- Clean up unit tests.
2018-01-24 13:33:13 +01:00
Pim van Pelt f0fa04dc26 s/led_green/led_status/g because not all status leds are green :) 2018-01-22 23:23:43 +01:00
Pim van Pelt 3327a561f9 Add channel_get_total() 2018-01-22 22:23:48 +01:00