diff options
| author | Li Zhineng <[email protected]> | 2025-07-23 09:40:39 +0800 |
|---|---|---|
| committer | Li Zhineng <[email protected]> | 2025-07-23 09:40:39 +0800 |
| commit | 2737eafb68873e99e3444c7f9c73790e8f29960d (patch) | |
| tree | 56cefb7b79f4bb73155964c4b52fc29c083223d9 | |
| parent | 9a75f8d7269305ebdc8d47e501577dceab9e1440 (diff) | |
| download | openairmx.org-2737eafb68873e99e3444c7f9c73790e8f29960d.tar.gz openairmx.org-2737eafb68873e99e3444c7f9c73790e8f29960d.zip | |
update posts
| -rw-r--r-- | _posts/2025-07-23-set-up-mock-server.markdown | 59 | ||||
| -rw-r--r-- | _posts/2025-07-23-welcome-to-jekyll.markdown | 29 | ||||
| -rw-r--r-- | about.markdown | 43 |
3 files changed, 94 insertions, 37 deletions
diff --git a/_posts/2025-07-23-set-up-mock-server.markdown b/_posts/2025-07-23-set-up-mock-server.markdown new file mode 100644 index 0000000..8d2855c --- /dev/null +++ b/_posts/2025-07-23-set-up-mock-server.markdown @@ -0,0 +1,59 @@ +--- +layout: post +title: "Set up a mock server" +date: 2025-07-23 09:06:41 +0800 +--- + +When setting up or pairing your AIRMX Pro with our [setup page][setup-page], +it's important to first configure [the mock API server][server]. This is +necessary because when your device receives the Wi-Fi credentials during +the process, it attempts to connect to the internet and sends a device +registration request to _i.airmx.cn_ for identification. + +Unfortunately, the endpoint is hardcoded in the firmware, and we cannot modify +it during the setup process. Therefore, we need to remap this domain name in +the upstream device—the router. + +Since every router has a different configuration, you can consult your +router's manual or use an open-source DNS tool, or configure a DNAT rule +with IPTables. For instance, if you are using a router running on EdgeOS and +you have set up the mock server on your Raspberry Pi, which is accessible at +_192.168.10.10_, you can use the following commands: + +{% highlight bash %} +set system static-host-mapping host-name i.airmx.cn inet 192.168.10.10 +set system static-host-mapping host-name mqtt.airmx.cn inet 192.168.10.10 +{% endhighlight %} + +It's essential to also configure _mqtt.airmx.cn_, as this is the domain name +for the MQTT broker that the device connects to after completing the +registration request. All device status updates and remote controls are +handled through this broker. Meanwhile, _i.airmx.cn_ is responsible for +processing device registration requests, and the device will periodically sync +the time with this endpoint. + +I am using [Eclipse Mosquitto][mosquitto] as the MQTT broker and configuring +it for **anonymous** access since I only run it on my home network. Here’s the +configuration file `mosquitto.conf` that I use to start the service: + +{% highlight conf %} +listener 1883 +allow_anonymous true +{% endhighlight %} + +Ensure that the network traffic from your AIRMX Pro and your computer is +routed through the configured router. You can test the DNS resolution using +the `ping` command: + +{% highlight bash %} +ping i.airmx.cn +{% endhighlight %} + +If the configuration is correct, you should see that the resolved IP address +is _192.168.10.10_ (replace with your local server's IP). Once confirmed, you +can return to [the setup page][setup-page] and continue pairing your device. + + +[setup-page]: https://github.com/openairmx/setup +[server]: https://github.com/openairmx/server +[mosquitto]: https://mosquitto.org diff --git a/_posts/2025-07-23-welcome-to-jekyll.markdown b/_posts/2025-07-23-welcome-to-jekyll.markdown deleted file mode 100644 index 2f99048..0000000 --- a/_posts/2025-07-23-welcome-to-jekyll.markdown +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: post -title: "Welcome to Jekyll!" -date: 2025-07-23 09:06:41 +0800 -categories: jekyll update ---- -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. - -Jekyll requires blog post files to be named according to the following format: - -`YEAR-MONTH-DAY-title.MARKUP` - -Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works. - -Jekyll also offers powerful support for code snippets: - -{% highlight ruby %} -def print_hi(name) - puts "Hi, #{name}" -end -print_hi('Tom') -#=> prints 'Hi, Tom' to STDOUT. -{% endhighlight %} - -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. - -[jekyll-docs]: https://jekyllrb.com/docs/home -[jekyll-gh]: https://github.com/jekyll/jekyll -[jekyll-talk]: https://talk.jekyllrb.com/ diff --git a/about.markdown b/about.markdown index 8b4e0b2..aa61b09 100644 --- a/about.markdown +++ b/about.markdown @@ -4,15 +4,42 @@ title: About permalink: /about/ --- -This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/) +Hello! Welcome to Open AIRMX, a site dedicated to everything related to +AIRMX Pro. -You can find the source code for Minima at GitHub: -[jekyll][jekyll-organization] / -[minima](https://github.com/jekyll/minima) +This project originated from my desire to integrate the device with +Apple Home, enabling remote control. However, around mid-2024, an unexpected +issue arose when someone reported in the repository that the AIRMX company +had gone out of business. This created a challenge for users who needed to +retrieve the device’s key, as there was no way to access it with the official +servers down. -You can find the source code for Jekyll at GitHub: -[jekyll][jekyll-organization] / -[jekyll](https://github.com/jekyll/jekyll) +After an extensive investigation and reverse engineering of the AIRMX mobile +application, we were able to find a solution. We are excited to offer you the +ability to fully localize your device on your home network. Currently, we +provide dedicated repositories for: +- [A mock API server][mock-server] that handles device registration and + time synchronization. +- [A setup page][setup-page] to assist you in pairing or reconnecting your + device to the internet. +- [A JavaScript project][airmx] called [airmx][airmx] that allows you to + control the device. This is a low-level package for composing and validating + MQTT messages, making it ready for integration with various platforms. +- [A Homebridge plugin][homebridge-airmx] for AIRMX Pro, which enables you to + control your device across your Apple devices, including via Siri. -[jekyll-organization]: https://github.com/jekyll +The project scope has expanded significantly beyond our initial expectations. +We are open-source enthusiasts and do not have any affiliation with +AIRMX—The company. The project is managed by a software engineer and a +UI designer. If you appreciate our work, we would be grateful for your support +through GitHub Sponsors or PayPal. Your generosity means a lot to us. + +If you have any questions or just want to say hello, please feel free to +send us a message at [[email protected]][contact-email]. + +[mock-server]: https://github.com/openairmx/server +[setup-page]: https://github.com/openairmx/setup +[airmx]: https://github.com/openairmx/airmx +[homebridge-airmx]: https://github.com/openairmx/homebridge-airmx +[contact-email]: mailto:[email protected] |
