You can find the OmniThing GitHub here. The README explains what OmniThing is and how to use it.
Check out the OmniThing Website! It is home to a web-based configuration tool that makes setting up OmniThing easy.
OmniThing README:
You can find the OmniThing GitHub here. The README explains what OmniThing is and how to use it.
Check out the OmniThing Website! It is home to a web-based configuration tool that makes setting up OmniThing easy.
OmniThing README:
Looks awesome! Nice job!!! Can’t wait to give it a try with my next ESP build.
I have just released OmniThing v0.3.0. This is a major release, adding the first version of the OmniThing Website. This site provides a web-based configuration tool, allowing you to set up your OmniThing device without having to edit any json manually.
You can download the finished json file once you’re done editing your configuration. Additionally, you can import existing configurations to make further changes to them.
If you are using OmniThing on an ESP32 or ESP8266, you can even download a complete sketch which includes your configuration already. You just download the zip file, extract it, and open up the sketch in the Arduino IDE. You never even have to touch source code to get it running.
Hi,
I am unable to reach omnithing website. Are there any issues?
Thanks and regards,
Pugazhendhi M
Thanks for the heads up. The site should be back up now.
I have just released OmniThing version 0.4.0. This release is focused on making OmniThing convenient to use on Raspberry Pis.
You can now install and update OmniThing using Raspbian’s native package manager.
Additionally, the OmniThing web configuration tool now runs locally on your Raspberry Pi. This allows you to directly edit your current configuration from your web browser. When you click update, the server will automatically restart the omnithing service, and your changes will take effect.
The Raspberry Pi installation instructions have been modified in the README, and I have copied the relevant section below:
It is easy to install OmniThing on a Raspberry Pi and keep it updated. You can directly use the apt package manager like you would for any other raspbian package. You just need to add the OmniThing repository.
sudo sh -c 'echo "deb http://omnithing.net/repository/rpi ./" >> /etc/apt/sources.list'
sudo apt-get update && sudo apt-get install omnithing
If a new version of OmniThing is released, you can update to it with the command below:
sudo apt-get update && sudo apt-get upgrade
You can edit the current OmniThing configuration using the self-hosted webserver running on port 3333. In your web browser, navigate to http://replace_with_your_pi_ip:3333
I have just release OmniThing alpha 0.5.0. The release notes are below:
Nice! I have OmniThing running great on a Raspberry Pi Zero W. It is great to have such a flexible and easy to use solution for integrating a RPi with SmartThings.
Hi Team,
I am configuring a switch on wemos d1 but I am hitting the below. I am not sure what I am doing wrong. ANy help is appreciated.
sketch\frozen.cpp.o:(.text._Z12json_vprintfP8json_outPKc13__va_list_tag+0x1c): undefined reference to strspn' sketch\frozen.cpp.o: In function
json_vprintf(json_out*, char const*, __va_list_tag)’:
sketch/frozen.cpp:1473: undefined reference to strspn' sketch\frozen.cpp.o: In function
json_unescape(char const*, int, char*, int)’:
sketch/frozen.cpp:1473: undefined reference to sscanf' sketch\frozen.cpp.o: In function
b64dec’:
sketch/frozen.cpp:1473: undefined reference to sscanf' sketch\frozen.cpp.o: In function
json_scanf_cb’:
sketch/frozen.cpp:1473: undefined reference to strcspn' sketch\frozen.cpp.o: In function
json_vscanf(char const*, int, char const*, __va_list_tag)’:
sketch/frozen.cpp:1473: undefined reference to strcspn' sketch/frozen.cpp:1473: undefined reference to
strspn’
sketch\frozen.cpp.o: In function get_utf8_char_len': sketch/frozen.cpp:1473: undefined reference to
strspn’
sketch\frozen.cpp.o: In function json_vscanf(char const*, int, char const*, __va_list_tag)': sketch/frozen.cpp:1473: undefined reference to
strcspn’
collect2.exe: error: ld returned 1 exit status
Multiple libraries were found for “Servo.h”
Used: C:\Users\Pugaz\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.3.0\libraries\Servo
Not used: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\libraries\Servo
exit status 1
Error compiling for board WeMos D1 R2 & mini.
Thanks in advance.
Pugazhendhi M
Hi Pugazhendhi,
Try updating your esp8266 library version to 2.4.2 in Tools->board->Boards Manager. OmniThing requires 2.4.2 to build.
Thanks Daniel,
That fixes the issue , I have added my first omnithing. But still I have to go a long way as there are no logs shows up on the IDE and i am unable to add the child device.
Will update my success later.
Thanks and regards,
Pugazhendhi M
Any chance there is a version of this for Mac? I run most things off a headless Mac mini rather than a RPi and would love to use this there.
I don’t have a Mac to test this on myself, but I believe following the Linux build/installation instructions may work with little to no code modification. I can’t think of anywhere where I’m using Linux specific code that wouldn’t work on other unix-based systems. One thing that I know wouldn’t work is the systemd service files, since MacOS uses launchd as opposed to systemd, so OmniThing and its configuration tool would have to be started manually or a launchd configuration created for it.
To try this, you’ll want to make sure you have nodejs and cmake installed on your system. The Linux build instructions are in the GitHub readme.
Got a slight problem. The Device Network it is trying to pull is the RPi’s MAC address. Unfortunately, I also use that Pi for Cast-Web-Api, which also uses the MAC address for the Device Network ID in ST. Any way we can set that to the MAC plus OT (for omni thing) or something similar?
Not that I know of. ST uses the MAC address of the LAN attached MCU to look up and find the corresponding ST Device with the matching DeviceNetworkID. This is done outside of any custom code.
I believe it is one ST Device per LAN attached MCU.
Just grab a $10 RPi ZeroW to run each application!
I believe this is possible on a Raspberry Pi, but it will require creating a virtual network interface. Basically, you can create a virtual interface that you can give any fake MAC address you want. Then you can have it use the actual Ethernet interface behind the scenes. I would have to add support to the NetworkSender and NetworkReceiver to allow specifying which interface to use, but I don’t think that should be too difficult. I can take a closer look at it tonight.
I guess I could… Just trying to eliminate as many failure points as possible. More devices = more chances for something to go wrong.
Thanks for taking a look.