rand256 / valetudo Goto Github PK
View Code? Open in Web Editor NEWValetudo RE - experimental vacuum software, cloud free
License: Apache License 2.0
Valetudo RE - experimental vacuum software, cloud free
License: Apache License 2.0
Hey rand256,
just wanna try your very awesome version of valetudo.
I rebootet my Roborock S50 after installing your version of valetudo and now I can't connect anymore to my Roborock via ssh because my key is refused.
Now I have to start from ground up right?
hey rand,
2 days before my Rockrobo S50 flashed back to original firmware by itself. I was able to get it back to Firmware 1720 and installed your version of valetudo as always. Then I made a whole run of my robo through my whole flat to get the initial map.
Then I started configuring my zones. Everything was done and worked as intended.
Then I wanted to add my "no go zones"... I could add them on the map and then I hit the "save" buton.
After beeing back in the menu I just wanted to take a 2nd look at them and go back to setup of the no-go-zones but... nothing is there anymore, just a clean map. :(
Describe the bug
How to Reproduce
open web interface, switch to german language, open home page or map while the robot is charging.
Expected behavior
Word "lade"is grammatically incorrect (1st person singular as in "I am charging"), should be "lädt" (3rd person singular as in "it [the robot] is charging".
Vacuum Model:
S55
Valetudo Version:
0.40 RE-7.1
Hi,
I have a gen2 robot and recently tried flashing it with this fork. Steps to reproduce:
mkdir -p valetudo/deployment/etc
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/valetudo.conf > valetudo/deployment/valetudo.conf
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/hosts > valetudo/deployment/etc/hosts
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/rc.local > valetudo/deployment/etc/rc.local
curl --location https://github.com/rand256/valetudo/releases/download/0.4.0-RE2-fix/valetudo.tar.gz | tar --extract --to-stdout --gunzip --file=- valetudo > valetudo/valetudo
mkdir -p firmware
curl --continue-at - https://cdn.awsde0.fds.api.mi-img.com/rubys/updpkg/v11_001886.fullos.ee205b4f-7d81-45c9-95a3-a4eaeed1af52.pkg --output firmware/v11_001886.fullos.pkg
dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh \
--firmware=firmware/v11_001886.fullos.pkg \
--public-key=$HOME/.ssh/id_rsa.pub \
--valetudo-path=valetudo \
--disable-firmware-updates \
--ntpserver=192.168.178.1 \
--replace-adbd
mirobo --debug discover --handshake true
mirobo --ip 192.168.8.1 --token xxx update-firmware output/v11_001886.fullos.pkg
mirobo --ip 192.168.8.1 --token xxx configure-wifi --timezone Europe/Berlin yyy zzz
I noticed that after a reboot valetudo was not running. When I ran /usr/local/bin/valetudo
manually I got:
No configuration file present. Creating one at: /mnt/data/valetudo/config.json
Dummycloud is spoofing 203.0.113.1:8053 on 127.0.0.1:8053
Webserver running on port 80
failed to get handshake for message: get_timezone [] { retries: 97, retriesHS: 102 }
/snapshot/valetudo/lib/miio/Vacuum.js:91
throw new Error("Unable to reach vacuum, handshake failed");
^
Error: Unable to reach vacuum, handshake failed
at Vacuum.sendMessage (/snapshot/valetudo/lib/miio/Vacuum.js:91:15)
at Vacuum.<anonymous> (/snapshot/valetudo/lib/miio/Vacuum.js:145:14)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
What could be the problem?
Hi,
I installed the standard Valetudo before finding this which is much more up to date. I have two questions, on the regular Valetudo version 4004 is not recommended. Is it safe to use on Valetudo RE?
Next question, is the vacuum_2eu_4004.pkg from https://vacuumz.info/download/gen1/ a prebuilt firmware with Valetudo RE with EU version? Or is this stock firmware? Or stock Valetudo?
Thank you!
Describe the bug
How to Reproduce
Expected behavior
Screenshots
Vacuum Model:
Valetudo Version:
User-Agent
Additional context
The original Valetudo page warns about installing firmware 1910 for Gen2 but on the firmware page there is a version including Valetudo RE: https://vacuumz.info/download/gen2/vacuum_valetudo_re_1910.pkg
Is it safe to use?
I just discovered the whole Valetudo thing today.
Hi,
first I want to thank for all the work you and Hypfer have done.
I love the function to run several zones at once.
It would be helpful to set the vacuum strength for specific zones.
Example set the "Kitchen" to "Turbo" and then the "Living Room" to "Balanced". This could be integrated in the zone setup.
Also for normal use the zone power setting should not affect the regular power setting.
Maybe this will be possible by adding another line in the zone information in /mnt/data/valetudo/config.json
This could just be the speed information like 60 for Balanced.
Any chance that you will create an own Hass.io for valetudo-mapper (like https://github.com/Poeschl/Hassio-Addons/tree/master/ICantBelieveItsNotValetudo)?
Getting this:
Did a stop of valetudo service and then overwrite the valetudo file inside of /usr/local/bin/. Then I doublechecked if the file got the execution mark and started the service. Nothing... still this error page now.
EDIT: tested with latest official PRE version RE3 => everything works as expected.
EDIT2: mhhh now I tested it with compiled version from your release. Everything is working. Maybe something changed for the docker container to compile it by myself?
Hello rand256
Can you please also provide a pre-built firmware based on v1898 with Valetudo 0.4.0-RE6 preview?
Thanks!
Best wishes
Also an Enhancement.
Adding a new Menu entry to change colors for the Map and maybe upload an own png file for the robot and the power station.
I found the way how you/hypfer added the pages and settings entry but I don't know how to set other colors or even generate new colorhexcodes :(
So I tried to install this version of valetudo and since the maps were not working (see issue), I wanted to reinstall stock valetudo.
So somehow my usual procedure to flash the firmware using mirobo in some awkward venv construction (I can't find the document that actually instructed me this unfortunately, but it has always worked in the past). So somehow during this install, it failed with the following message:
$ mirobo --ip 192.168.8.1 --token 785a79774c434b4b4f594b476a533757 update-firmware ../output/vacuum_1910.pkg
Going to update from ../output/vacuum_1910.pkg
INFO:miio.updater:Serving on 0.0.0.0:38143, timeout 10
INFO:miio.updater:Using local ../output/vacuum_1910.pkg (md5: 0973be74c20c0316d244f033b3d97d6c)
Hosting file at http://192.168.8.39:38143/vacuum_1910.pkg
ERROR:miio.protocol:unable to parse json '': Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 257, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/steven/software/rockrobo/flasher/venv/bin/mirobo", line 10, in <module>
sys.exit(cli())
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/click_common.py", line 54, in __call__
return self.main(*args, **kwargs)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/vacuum_cli.py", line 590, in update_firmware
update_res = vac.update(url, md5)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 328, in update
return self.send("miIO.ota", payload)[0] == "ok"
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 286, in send
return self.send(command, parameters, retry_count - 1)
File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 263, in send
self.__id = m.data.value["id"]
TypeError: 'NoneType' object is not subscriptable
ERROR:miio.updater:No request was made..
I'm pretty sure this is not directly related to this repo's software, but I would very much appreciate a word of advice as to how to actually flash any new firmware into this device without mirobo working :/
I tried resetting the device with the reset button and flashing again afterwards, also using the ususal procedure. (I have the IP correct, I have the token correct (mirobo --debug discover --handshake true
).)
Hi,
at the moment i've to cover the step-sensors of my S5 to get it work on black carpet. It would be awesome to have a switch in the settings for this :)
Nice Fork!
PS:
This also was an issue in the original Valetudo repo by Hyper, but didn't get any attention.
Hey rand256,
I saw u made an update for the cleaning history.
I made a new valetudo file from your source and just want to test a bit.
Found out, that you are not able to get out of the Cleaning History after clicking on one Cleaning Run. Maybe thats because there is actual no map associated to this entry (there was no cleaning since this update).
I was redirected here from the telegram channel, after I asked if there was a way to set multiple cleaning passes with Valetudo. In your build you can do that when defining zones, which is the next best thing, but since my house is not all in the same "angulation", and the zones fall all slanted for more than half of it, without possibility to create custom quadrangular zones, would it be possible to instead just start the plain, whole house cleaning with N number of passes?
Thank you for this build ;)
Hey rand256,
I don't know how to at feature requests in github, so I opened an issue :D, sry for that.
Is it possible for your to add a button on the mainpage where you select the zones to clean for just start the cleaning? It isn't realy intuitive to select the zones and then just click on one of the names to get right into the map and then have to hit the "play" button.
Just one or two simple buttons => 1st one: Start Cleaning | 2nd one: Mapview
Thx in advance :)
Hey guys,
tryed the experimental feature for saving the map.
Now I don't have any map anymore.
Is there a way to completly start from scratch for drawing a new map by the robot instead of resetting and flashing/rooting again?
A dark mode (toggle button in menu) would be nice, like in pure valetudo, see Hypfer/Valetudo#374
Maybe this can simply be migrated to this repo?
Thank you!
I didn't read the instructions carefully enough so instead of adding the lines in rc.local I overwrote the file. Could anyone post the rc.local as it should be?
Thanks!
At start the current git repository testing this error apear:
failed to get handshake for message: get_timezone [] { retries: 92, retriesHS: 102 }
/home/joe/git/valetudo/lib/miio/Vacuum.js:91
throw new Error("Unable to reach vacuum, handshake failed");
^
Error: Unable to reach vacuum, handshake failed
at Vacuum.sendMessage (/home/joe/git/valetudo/lib/miio/Vacuum.js:91:15)
at Vacuum. (/home/joe/git/valetudo/lib/miio/Vacuum.js:145:14)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
How to Reproduce
Firmware 1886
npm install
npm run build
sudo ./develop/run
wait 10 seconds
Expected behavior
running ;)
Vacuum Model:
Gen2/S5
Valetudo Version:
git repository
User-Agent
not needet
Additional context
running on ubuntu 19.04 latest patches
As for me, my robot reflashed it self after about 1 Month of operation.
I ran 003468 on my Gen1 and current veletudo.conf with Valetudo RE7.1.
After reflashing all maps and zones are gone.
Here a backup/restore function to save all configuration to the local PC would be nice.
It should copy the zones, saved maps, timers and maybe other settings what can be done.
This way it is easy to go back to the full working operation without having to rerun the whole procedure of creating maps, zones and settings.
With version RE 5.0 home assistant is unable to use the MQTT. MQTT server starts fine and connects but than Home Assistant doesn't know what to do. This is the error:
Exception in async_discover when dispatching 'mqtt_discovery_new_vacuum_mqtt': ({'name': 'rockrobo', 'schema': 'state', 'supported_features': ['start', 'pause', 'stop', 'return_to_base', 'battery', 'status', 'locate', 'clean_spot', 'fan_speed', 'send_command'], 'command_topic': 'valetudo/rockrobo/command', 'state_topic': 'valetudo/rockrobo/state', 'set_fan_speed_topic': 'valetudo/rockrobo/set_fan_speed', 'fan_speed_list': ['whisper', 'min', 'medium', 'high', 'max', 'mop'], 'send_command_topic': 'valetudo/rockrobo/custom_command', 'json_attributes_topic': 'valetudo/rockrobo/attributes', 'platform': 'mqtt'},)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/mqtt/vacuum/__init__.py", line 80, in async_discover
config = PLATFORM_SCHEMA(discovery_payload)
File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 208, in __call__
return self._exec((Schema(val) for val in self.validators), v)
File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 287, in _exec
raise e if self.msg is None else AllInvalid(self.msg, path=path)
File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 283, in _exec
v = func(v)
File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
return self._compiled([], data)
File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 817, in validate_callable
return schema(data)
File "/usr/src/homeassistant/homeassistant/components/mqtt/vacuum/__init__.py", line 35, in validate_mqtt_vacuum
return schemas[value[CONF_SCHEMA]](value)
File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
return self._compiled([], data)
File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict
return base_validate(path, iteritems(data), out)
File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value is not allowed @ data['supported_features'][3]
Valetudo-RE crashes on start.
root@rockrobo:~# /usr/local/bin/valetudo
/usr/local/bin/valetudo: relocation error: /usr/local/bin/valetudo: symbol _ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
The same error happens whether I compile valetudo manually, or use released one.
When switching to german language, the status only displays lower letters. Like on "Rückkehr zur Basis" it actually displays "rückkehr zur basis".
In the language file it is written with capital letters. Also the status is correct on the main page.
Tested on Gen1 with Valetudo RE7.1
Just switch to german language and then to the map. In the status box the status itself is displayed in lower case letters. The word "Status" and "Akkustand" are correct.
when using home assistant to send clean zone or goto place the co-ordinates are off on the y axis
co-ordinates don't seem to match up when using the vacuum call service in home assistance
How to Reproduce
the co-ordinates was achieved by creating zones
then extracting them from api/get_config
calling vacuum.send_command
app_zoned_clean [[3540,20630,7229,25852,1]]]
the zone is shifted down but when calling the zone from valetudo web interface it works correctly
Expected behavior
Screenshots
https://imgur.com/a/bX46BMP
Vacuum Model: gen2 S5
Valetudo Version: 4.0 R5
User-Agent
Additional context
Hi, the "Wait" above the message "Please wait another xx seconds." is not pulled from the translations.
Translations refer to "wait" while the text in home.html is referring to "waitMap"
In Line 471
let waiting = ons.notification.alert(i18next.t('home.popups.waitMapTicks',{defaultValue: "Map replacement routines are running. Please wait for {{seconds}} seconds...", seconds: 30}),{class: 'load-map-waiting', title: i18next.t('home.popups.waitMap',"Wait"),
cancelable: false});
change
title: i18next.t('home.popups.waitMap',"Wait"),
to
title: i18next.t('home.popups.wait',"Wait"),
Unless you want to change it in all translations.
Hi!
I am using 0.4.0-RE6 but the error popped up on the last version already.
All my symbols are showing a "?" only except the home icon as seen on the screenshot:
I am using an iPhone 7 with ios 13.2.2 tried Safari and Chrome both act equal!
Makes no difference local lan or from outside
Did a reboot and the firmware update didn't help.
BUT it worked before and I didn't change anything. It has happen out of the sudden!
What can it be?
Thanks
URBANsUNITED
User "swappers" took the latest firmware 1910, ripped the miio environement (since the chinese developers decided to not let you update the fw over local area network anymore), took the miio environement from 1898 and built a firmware with valetudo. Take a look at the discussion:
https://4pda.ru/forum/index.php?showtopic=881982&view=findpost&p=89473369
And his collection:
https://vacuumz.info/download/gen2/
Is it possible for you to build a firmware based on 1910?
would be really great to directly .aplay a local file on MQTT trigger (e.g. node-aplay?)
TL;DR:
valetudo/client/settings-timers.html
Line 66 in aef8148
class="center" data-i18n="common.days.4">
, then cycle through results)
In provided latest OS image, there is a mistake left in settings --> timers --> ZONE CLEANING SCHEDULE (BETA) --> in pop-up.
Hi,
i am still delighted to see zoned timer feature in valetudo GUI. Any plans to add some more advanced timers too? Then i could drop my GUI-less tools, that would be great.
I do this advanced timers with my bash scripts and a cron job like this:
0 9-18/3 * * 1-5 /mnt/data/mitools_v1.2/mizt -z kueche -z katzenklo -s3 -i1
An advanced timer to clean two zones "kitchen & cat toilet" with suction power 3 and iteration 1, mo-fr, between 09:00-18:00, every 3h
This timer is equal to 20 default timers (4 timers a day x 5 days) i would need to get the same job done.
Any chance to get a GUI for such timers?
Currently the language is set only per-browser via a cookie - which will be constantly deleted if you decide to clear your browser cache for privacy reasons on every restart, resetting language to english and rendering the setting more or less useless. Additionally, you have to set the language for every device and every user separately.
Since most likely every person in a household will most likely prefer to have the same UI language, and will use the same UI language on every device, I would like to suggest to either make the web interface store this setting on the Roborock or to read the default language setting from a config file that can be edited by the user via SSH.
Hello, first of all thank you for your work. I am very grateful for the functionality of being able to save several floors, a BIG thank you.
*I would like to know if it would be possible for you to be able to integrate a function that allows you to manage the zones created (kitchen, living room, etc.) by floor, instead of it all getting mixed up like it is right now PLS.
*And finally if it would be possible to directly connect Valetudo google home assistant or has an application that is already recognized by google home assistant or another method?. Because Hassio is complicated to set up, is not the simplest solution and I can’t do it ( It resets my robot, all the time and it's annoying ).
Thank you again.
Ps: Sorry for my mistakes or misinterpretations I am French and not very good at English
Is it possible to display the measurements of the level of the wifi signal on the map? In order for the robot to draw a coverage map, he wrote a color line where he drove a legend with the appropriate level, for example, red - the signal is less than 80, green - 50, etc.
Just for fun)
Hey rand, got the latest version from your fork installed.
I know its still in beta, but want to notice that the 4th and later timer for a zone cleaning will always beeing disabled after reloading the page.
And: I can't delete them.
First of all sorry for opening an issue for that. Maybe I'm just stupid and blind..... but how do i set up a fence/virtual wall or a no go area as shown in your Picures "Editing Markers" i can't find where to place those, i can set up a zone and rename it, but no no go areas or virtual walls.
Maybe you can provide a detailed information.
Thank you in advance!
Lab mode is enabled. Do i have to reset the Map for them to work?
I had resetted the map after installing the normal valetudo
Looks like there are a few issues with the conf and won't auto run.
Current config looks like this
#!upstart
description "Valetudo"
start on started rrwatchdoge
stop on stopping rrwatchdoge
oom score 1000
script
# give roborock software some time to initialize if started at boot or right after them
wdp=`pidof WatchDoge`
if [ `cut -d. -f1 /proc/uptime` -lt 300 ]; then
echo -n "Waiting for 30 sec after boot..."
sleep 30
echo " done."
elif [ -n "$wdp" -a $(date +%s --date="now - `stat -c%X /proc/$wdp` seconds") -lt 60 ]; then
echo -n "Waiting for 15 sec after watchdoge launch..."
sleep 15
echo " done."
fi
# check data partition to be mounted before doing anything
while ! /bin/mountpoint -q /mnt/data
do
echo "Data mountpoint isn't ready, can't run yet. Retrying in 5 sec..."
sleep 5
done
# disable core dumps on this system, we're in production
echo '|/bin/false' > /proc/sys/kernel/core_pattern
# finally run valetudo
exec /usr/bin/chrt -i 0 /usr/bin/ionice -c3 /usr/local/bin/valetudo
end script
respawn
respawn limit 10 90
limit as 209715200 209715200
When running init-checkconf to check the file I get;
ERROR: File valetudo.conf: shell syntax invalid in script section: /bin/sh: 8: Syntax error: "elif" unexpected (expecting "then")
Hi!
Thank you for your effort and continuous updates to this project!
I have a carpet with black spots wich the vacuum get stuck on. Figured out to be the cliff sensors triggering keeping the robo from going onto the black area.
Would it be possible to have Valetudo temporarily disable the cliff sensors inside a specific zone, much like the forbidden zones but making them "safe" instead?
Descriptiong
The website mentions FW 1886, but i can't find it on the regular sites (the original valetudo website doesn't mention this version either).
Vacuum Model:
Roborock S55
Valetudo Version: 0.4.0
User-Agent
Additional context
I am wondering if you think it would be easy/possible to port your way of drawing the map to the companion app ICantBelieveItsNotValetudo. It looks way better in the Valetudo RE interface than it does in the official companion app. I took a look at it but got lost quickly...
Maybe you could create a "ICantBelieveItsNotValetudo RE" version if you judge its not too much work.
With the ability to save and load multiple maps I'd like to create a new map for each floor of my house. However, there is no way to clear the currently loaded map and start creating a new one. I feel like the vacuum isn't vacuuming the entire floor now if it isn't on the ground floor.
I know you mention your improvements are hackish, but they are probably better than nothing especially as you seem to have fixed Valetudo issue #206.
Describe the bug:
After flashing the Valetudo firmware successfully the vacuum does not create a Wifi accesspoint. I tried to hold the reset button for >30 seconds but still no accespoint has been created.
The robot can still clean by pressing the power button
Other Info:
Vacuum Model: S5
Valetudo Version: V1898
Terminal during flashing:
INFO:miio.updater:Using local /Users/wouter/Downloads/v1898.fullos.pkg (md5: 355c8df23cf7fd4a564dd1cad51701dd) Hosting file at http://192.168.8.88:61273/v1898.fullos.pkg Update started! 0%| | 0/100 [00:00<?, ?it/s]192.168.8.1 - - [03/Nov/2019 19:30:50] "GET /v1898.fullos.pkg HTTP/1.1" 200 - Downloading: 95%|███████████████████████████████████████████████▌ | 95/100 [03:38<00:10, 2.18s/it]INFO:miio.updater:Got a request, should be downloading now. Downloading: 100%|█████████████████████████████████████████████████| 100/100 [03:43<00:00, 2.09s/it]Installation started, please wait until the vacuum reboots Downloading: 100%|█████████████████████████████████████████████████| 100/100 [03:44<00:00, 2.25s/it] (venv) wouter@Wouters-MacBook-Pro flasher %
Hi,
in case of pause and forget - I use a little bash script that sends my robot back to docking station. This happens only if there is no error, but state would change to 2. This can prevent loosing the map (GEN 1).
Just a cron job, which runs every minute.
if $error_code == 0 and $state == 2 then /api/drive_home
Would be nice having this as a setting in valetudo. May be with a drop down for choosing state 2/3 and the time span to wait.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.