Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying to install via Apt-Get on Raspberry Pi #6

Closed
flatsiedatsie opened this issue Sep 25, 2018 · 26 comments
Closed

Trying to install via Apt-Get on Raspberry Pi #6

flatsiedatsie opened this issue Sep 25, 2018 · 26 comments

Comments

@flatsiedatsie
Copy link
Contributor

I used Mozilla's image and Etcher to create an SD card.

I then enabled SSH in the interface, and connected to it.

Trying to follow your installation instructions fails though. It feels as it it assumes things will be running in a docker container?

pi@gateway:~ $ sudo apt-get update
Hit:1 http://archive.raspberrypi.org/debian stretch InRelease
Hit:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease
Ign:3 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease
Hit:4 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release
Get:5 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release.gpg [821 B]
Ign:5 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release.gpg
Fetched 821 B in 1s (645 B/s)
Reading package lists... Done
W: GPG error: http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 379CE192D401AB61
W: The repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease' doesn't support architecture 'armhf'

@flatsiedatsie
Copy link
Contributor Author

After some more fiddling about it boils down to:

sudo apt-get update
Get:1 http://raspbian.raspberrypi.org/raspbian stretch InRelease [15.0 kB]
Hit:2 http://archive.raspberrypi.org/debian stretch InRelease
Ign:3 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease
Hit:4 http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid Release
Fetched 15.0 kB in 2s (6868 B/s)
Reading package lists... Done
N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'http://dl.bintray.com/tsathishkumar/myscontroller-rs vivid InRelease' doesn't support architecture 'armhf'

@flatsiedatsie flatsiedatsie changed the title Trying to install on Raspberry Pi Trying to install via Apt-Get on Raspberry Pi Sep 26, 2018
@tsathishkumar
Copy link
Owner

tsathishkumar commented Sep 26, 2018

@flatsiedatsie the package is not built for armv7 architecture. I will look into it.

@tsathishkumar
Copy link
Owner

@flatsiedatsie I tried to cross compile for Raspberry pi. But i'm not able to get it working properly. If you would like to investigate it further, go through the build logs in travis

@flatsiedatsie
Copy link
Contributor Author

I will! Very much looking forward to try this!

See the thread on the MySensors forum also.

Would it help if I shared the error messages I got on the pi during compiling?

@flatsiedatsie
Copy link
Contributor Author

Got a large amount of errors again trying to compile it on the Pi.

   Compiling myscontroller-rs v0.5.7 (file:///home/pi/MySController-rs)
error[E0432]: unresolved import `crossbeam_channel`
  --> src/lib.rs:19:5
   |
19 | use crossbeam_channel as channel;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `crossbeam_channel` in the root

error[E0432]: unresolved import `actix_web`
 --> src/api/firmware.rs:1:5
  |
1 | use actix_web::{error, multipart, AsyncResponder, Error, FutureResponse, HttpMessage, HttpRequest,
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `futures`
 --> src/api/firmware.rs:4:5
  |
4 | use futures::future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `futures`
 --> src/api/firmware.rs:5:5
  |
5 | use futures::{Future, Stream};
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/firmware.rs:8:5
  |
8 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `actix`
 --> src/api/index.rs:1:5
  |
1 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/index.rs:2:5
  |
2 | use actix_web::{HttpRequest, Result};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/node.rs:1:5
  |
1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate futures;`?
 --> src/api/node.rs:3:5
  |
3 | use futures::future::Future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/node.rs:5:5
  |
5 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `actix_web`
 --> src/api/sensor.rs:1:5
  |
1 | use actix_web::{AsyncResponder, FutureResponse, HttpRequest, HttpResponse, Json};
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate futures;`?
 --> src/api/sensor.rs:3:5
  |
3 | use futures::future::Future;
  |     ^^^^^^^ Maybe a missing `extern crate futures;`?

error[E0432]: unresolved import `http`
 --> src/api/sensor.rs:5:5
  |
5 | use http::StatusCode;
  |     ^^^^ Maybe a missing `extern crate http;`?

error[E0432]: unresolved import `serialport`
 --> src/core/connection.rs:3:5
  |
3 | use serialport;
  |     ^^^^^^^^^^ no `serialport` in the root

error[E0433]: failed to resolve. Maybe a missing `extern crate serialport;`?
 --> src/core/connection.rs:4:5
  |
4 | use serialport::prelude::*;
  |     ^^^^^^^^^^ Maybe a missing `extern crate serialport;`?

error[E0432]: unresolved import `num`
 --> src/core/message/presentation.rs:3:5
  |
3 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `num`
 --> src/core/message/set.rs:3:5
  |
3 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `hex`
 --> src/core/message/stream.rs:2:5
  |
2 | use hex;
  |     ^^^ no `hex` in the root

error[E0432]: unresolved import `num`
 --> src/core/message/stream.rs:4:5
  |
4 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `num`
 --> src/core/message/mod.rs:7:5
  |
7 | use num::FromPrimitive;
  |     ^^^ Did you mean `std::num`?

error[E0432]: unresolved import `r2d2`
 --> src/core/message_handler/internal.rs:7:5
  |
7 | use r2d2::*;
  |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `r2d2`
 --> src/core/message_handler/presentation.rs:8:5
  |
8 | use r2d2::*;
  |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `r2d2`
  --> src/core/message_handler/stream.rs:10:5
   |
10 | use r2d2::*;
   |     ^^^^ Did you mean `diesel::r2d2`?

error[E0432]: unresolved import `actix`
 --> src/handler/firmware.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/firmware.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/handler/node.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/node.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/handler/sensor.rs:2:5
  |
2 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `actix_web`
 --> src/handler/sensor.rs:3:5
  |
3 | use actix_web::*;
  |     ^^^^^^^^^ Maybe a missing `extern crate actix_web;`?

error[E0432]: unresolved import `actix`
 --> src/model/db.rs:1:5
  |
1 | use actix::*;
  |     ^^^^^ Maybe a missing `extern crate actix;`?

error[E0432]: unresolved import `crc16`
 --> src/model/firmware.rs:1:5
  |
1 | use crc16::*;
  |     ^^^^^ Maybe a missing `extern crate crc16;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate ihex;`?
 --> src/model/firmware.rs:2:5
  |
2 | use ihex::record::Record;
  |     ^^^^ Maybe a missing `extern crate ihex;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
 --> src/wot/adapter.rs:6:5
  |
6 | use webthing::property::EmptyValueForwarder;
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
 --> src/wot/adapter.rs:7:5
  |
7 | use webthing::property::ValueForwarder;
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0432]: unresolved import `webthing`
 --> src/wot/adapter.rs:8:5
  |
8 | use webthing::{BaseProperty, BaseThing, Thing};
  |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Maybe a missing `extern crate webthing;`?
  --> src/wot/mod.rs:13:5
   |
13 | use webthing::server::ActionGenerator;
   |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0432]: unresolved import `webthing`
  --> src/wot/mod.rs:14:5
   |
14 | use webthing::{Action, Thing, ThingsType, WebThingServer};
   |     ^^^^^^^^ Maybe a missing `extern crate webthing;`?

error[E0433]: failed to resolve. Use of undeclared type or module `BaudRate`
   --> src/core/connection.rs:204:26
    |
204 |     settings.baud_rate = BaudRate::Baud38400;
    |                          ^^^^^^^^ Use of undeclared type or module `BaudRate`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
   --> src/handler/firmware.rs:194:42
    |
194 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
    |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
   --> src/handler/firmware.rs:197:22
    |
197 |             .map_err(error::ErrorInternalServerError)?;
    |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/node.rs:53:42
   |
53 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
   |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/node.rs:56:22
   |
56 |             .map_err(error::ErrorInternalServerError)?;
   |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/sensor.rs:39:42
   |
39 |         let conn = &self.0.get().map_err(error::ErrorInternalServerError)?;
   |                                          ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `error`
  --> src/handler/sensor.rs:42:22
   |
42 |             .map_err(error::ErrorInternalServerError)?;
   |                      ^^^^^ Use of undeclared type or module `error`

error[E0433]: failed to resolve. Use of undeclared type or module `Record`
  --> src/model/firmware.rs:88:14
   |
88 |             &Record::Data {
   |              ^^^^^^ Use of undeclared type or module `Record`

error[E0433]: failed to resolve. Use of undeclared type or module `Record`
   --> src/model/firmware.rs:102:48
    |
102 |                         Firmware::ihex_to_bin(&Record::from_record_string(&line.unwrap()).unwrap())
    |                                                ^^^^^^ Use of undeclared type or module `Record`

error[E0433]: failed to resolve. Use of undeclared type or module `State`
   --> src/model/firmware.rs:120:25
    |
120 |         let mut state = State::<MODBUS>::new();
    |                         ^^^^^ Use of undeclared type or module `State`

error[E0412]: cannot find type `Addr` in this scope
 --> src/api/index.rs:7:13
  |
7 |     pub db: Addr<Syn, ConnDsl>,
  |             ^^^^ not found in this scope

error[E0412]: cannot find type `Syn` in this scope
 --> src/api/index.rs:7:18
  |
7 |     pub db: Addr<Syn, ConnDsl>,
  |                  ^^^ did you mean `Sync`?

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:48:19
   |
48 |         receiver: Receiver<String>,
   |                   ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:49:24
   |
49 |         stop_receiver: Receiver<String>,
   |                        ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/connection.rs:50:10
   |
50 |     ) -> Receiver<String> {
   |          ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/connection.rs:71:37
   |
71 |     fn read_loop(&mut self, sender: Sender<String>) -> Sender<String> {
   |                                     ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/connection.rs:71:56
   |
71 |     fn read_loop(&mut self, sender: Sender<String>) -> Sender<String> {
   |                                                        ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
   --> src/core/connection.rs:127:17
    |
127 |     mut sender: Sender<String>,
    |                 ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Sender;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:128:19
    |
128 |     mut receiver: Receiver<String>,
    |                   ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:151:15
    |
151 |     receiver: Receiver<String>,
    |               ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:152:28
    |
152 |     cancel_token_receiver: Receiver<String>,
    |                            ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/core/connection.rs:153:6
    |
153 | ) -> Receiver<String> {
    |      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
1   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `SerialPortSettings` in this scope
   --> src/core/connection.rs:202:23
    |
202 |     let mut settings: SerialPortSettings = Default::default();
    |                       ^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Receiver` in this scope
 --> src/core/interceptor.rs:5:16
  |
5 |     receiver: &Receiver<String>,
  |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Receiver;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:6:21
  |
6 |     stream_sender: &Sender<StreamMessage>,
  |                     ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:7:19
  |
7 |     node_sender: &Sender<String>,
  |                   ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:8:27
  |
8 |     presentation_sender: &Sender<PresentationMessage>,
  |                           ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/interceptor.rs:9:18
  |
9 |     set_sender: &Sender<SetMessage>,
  |                  ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/interceptor.rs:10:25
   |
10 |     controller_sender: &Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/internal.rs:13:16
   |
13 |     receiver: &Receiver<String>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/internal.rs:14:14
   |
14 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/internal.rs:15:20
   |
15 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/presentation.rs:11:16
   |
11 |     receiver: &Receiver<PresentationMessage>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/presentation.rs:12:14
   |
12 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/presentation.rs:13:20
   |
13 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Receiver` in this scope
 --> src/core/message_handler/set.rs:5:28
  |
5 |     set_message_receiver: &Receiver<SetMessage>,
  |                            ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Receiver;
  |

error[E0412]: cannot find type `Sender` in this scope
 --> src/core/message_handler/set.rs:6:26
  |
6 |     gateway_out_sender: &Sender<String>,
  |                          ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
  |
1 | use std::sync::mpsc::Sender;
  |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/set.rs:20:16
   |
20 |     receiver: &Receiver<SetMessage>,
   |                ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/set.rs:21:30
   |
21 |     property_notify_sender: &Sender<SetMessage>,
   |                              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/set.rs:22:25
   |
22 |     controller_sender: &Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/message_handler/stream.rs:13:20
   |
13 |     ota_receiver: &Receiver<StreamMessage>,
   |                    ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/stream.rs:14:14
   |
14 |     sender: &Sender<String>,
   |              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `PooledConnection` in this scope
  --> src/core/message_handler/stream.rs:15:20
   |
15 |     db_connection: PooledConnection<ConnectionManager<SqliteConnection>>,
   |                    ^^^^^^^^^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use diesel::r2d2::PooledConnection;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/message_handler/stream.rs:26:30
   |
26 |     stream_response_sender: &Sender<String>,
   |                              ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/server.rs:16:25
   |
16 |     gateway_out_sender: Sender<String>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/server.rs:17:27
   |
17 |     gateway_out_receiver: Receiver<String>,
   |                           ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/core/server.rs:18:20
   |
18 |     in_set_sender: Sender<SetMessage>,
   |                    ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
  --> src/core/server.rs:19:27
   |
19 |     set_message_receiver: Receiver<SetMessage>,
   |                           ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Receiver;
   |

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/firmware.rs:26:6
   |
26 | impl Message for CreateOrUpdate {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/firmware.rs:30:6
   |
30 | impl Handler<CreateOrUpdate> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:185:6
    |
185 | impl Message for ListFirmwares {
    |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
   --> src/handler/firmware.rs:186:44
    |
186 |     type Result = Result<Vec<FirmwareDto>, Error>;
    |                                            ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
1   | use diesel::r2d2::Error;
    |
1   | use diesel::result::Error;
    |
1   | use serde_json::Error;
    |
1   | use serde_json::error::Error;
    |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:189:6
    |
189 | impl Handler<ListFirmwares> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
   --> src/handler/firmware.rs:190:44
    |
190 |     type Result = Result<Vec<FirmwareDto>, Error>;
    |                                            ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
    |
1   | use diesel::r2d2::Error;
    |
1   | use diesel::result::Error;
    |
1   | use serde_json::Error;
    |
1   | use serde_json::error::Error;
    |
and 3 other candidates

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:211:6
    |
211 | impl Message for DeleteFirmware {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:215:6
    |
215 | impl Handler<DeleteFirmware> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
   --> src/handler/firmware.rs:251:6
    |
251 | impl Message for GetFirmware {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/firmware.rs:255:6
    |
255 | impl Handler<GetFirmware> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:30:6
   |
30 | impl Message for GetNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:34:6
   |
34 | impl Message for DeleteNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:38:6
   |
38 | impl Message for NewNode {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:44:6
   |
44 | impl Message for ListNodes {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/node.rs:45:37
   |
45 |     type Result = Result<Vec<Node>, Error>;
   |                                     ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/node.rs:48:6
   |
48 | impl Handler<ListNodes> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/node.rs:49:37
   |
49 |     type Result = Result<Vec<Node>, Error>;
   |                                     ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/node.rs:71:6
   |
71 | impl Message for NodeUpdate {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/node.rs:75:6
   |
75 | impl Handler<NodeUpdate> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:112:6
    |
112 | impl Handler<DeleteNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:142:6
    |
142 | impl Handler<NewNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
   --> src/handler/node.rs:182:6
    |
182 | impl Handler<GetNode> for ConnDsl {
    |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:20:6
   |
20 | impl Message for GetSensor {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:24:6
   |
24 | impl Message for DeleteSensor {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Message` in this scope
  --> src/handler/sensor.rs:30:6
   |
30 | impl Message for ListSensors {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/sensor.rs:31:39
   |
31 |     type Result = Result<Vec<Sensor>, Error>;
   |                                       ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:34:6
   |
34 | impl Handler<ListSensors> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0412]: cannot find type `Error` in this scope
  --> src/handler/sensor.rs:35:39
   |
35 |     type Result = Result<Vec<Sensor>, Error>;
   |                                       ^^^^^ not found in this scope
help: possible candidates are found in other modules, you can import them into scope
   |
1  | use diesel::r2d2::Error;
   |
1  | use diesel::result::Error;
   |
1  | use serde_json::Error;
   |
1  | use serde_json::error::Error;
   |
and 3 other candidates

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:47:6
   |
47 | impl Handler<DeleteSensor> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Handler` in this scope
  --> src/handler/sensor.rs:78:6
   |
78 | impl Handler<GetSensor> for ConnDsl {
   |      ^^^^^^^ not found in this scope

error[E0405]: cannot find trait `Actor` in this scope
 --> src/model/db.rs:7:6
  |
7 | impl Actor for ConnDsl {
  |      ^^^^^ not found in this scope

error[E0412]: cannot find type `SyncContext` in this scope
 --> src/model/db.rs:8:20
  |
8 |     type Context = SyncContext<Self>;
  |                    ^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Record` in this scope
  --> src/model/firmware.rs:86:33
   |
86 |     pub fn ihex_to_bin(record: &Record) -> Vec<u8> {
   |                                 ^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
   |
1  | use log::Record;
   |

error[E0412]: cannot find type `MODBUS` in this scope
   --> src/model/firmware.rs:120:33
    |
120 |         let mut state = State::<MODBUS>::new();
    |                                 ^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:13:25
   |
13 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0405]: cannot find trait `ValueForwarder` in this scope
  --> src/wot/adapter.rs:27:6
   |
27 | impl ValueForwarder for PropertyValueForwarder {
   |      ^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:44:25
   |
44 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:68:58
   |
68 | fn build_properties(sensor: &Sensor, set_message_sender: Sender<SetMessage>) -> Vec<BaseProperty> {
   |                                                          ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/adapter.rs:80:25
   |
80 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
1  | use std::sync::mpsc::Sender;
   |

error[E0405]: cannot find trait `ValueForwarder` in this scope
  --> src/wot/adapter.rs:87:41
   |
87 |     let value_forwarder: Option<Box<dyn ValueForwarder>> = match set_type.is_forwardable() {
   |                                         ^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find value `EmptyValueForwarder` in this scope
  --> src/wot/adapter.rs:93:32
   |
93 |         false => Some(Box::new(EmptyValueForwarder)),
   |                                ^^^^^^^^^^^^^^^^^^^ not found in this scope

error[E0405]: cannot find trait `ActionGenerator` in this scope
  --> src/wot/mod.rs:18:6
   |
18 | impl ActionGenerator for Generator {
   |      ^^^^^^^^^^^^^^^ not found in this scope

error[E0412]: cannot find type `Sender` in this scope
  --> src/wot/mod.rs:42:25
   |
42 |     set_message_sender: Sender<SetMessage>,
   |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
   |
3  | use std::sync::mpsc::Sender;
   |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/wot/mod.rs:121:22
    |
121 |     in_set_receiver: Receiver<SetMessage>,
    |                      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Receiver;
    |

error[E0412]: cannot find type `Sender` in this scope
   --> src/wot/mod.rs:140:25
    |
140 |     set_message_sender: Sender<SetMessage>,
    |                         ^^^^^^ did you mean `Send`?
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Sender;
    |

error[E0412]: cannot find type `Receiver` in this scope
   --> src/wot/mod.rs:141:22
    |
141 |     in_set_receiver: Receiver<SetMessage>,
    |                      ^^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
    |
3   | use std::sync::mpsc::Receiver;
    |

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:3:5
  |
3 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:6:5
  |
6 | use crate::handler::firmware::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:7:5
  |
7 | use crate::handler::response::Msgs;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/firmware.rs:9:5
  |
9 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/index.rs:3:5
  |
3 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/index.rs:4:5
  |
4 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/node.rs:2:5
  |
2 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/node.rs:4:5
  |
4 | use crate::handler::node::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/sensor.rs:2:5
  |
2 | use crate::api::index::AppState;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/api/sensor.rs:4:5
  |
4 | use crate::handler::sensor::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/connection.rs:1:5
  |
1 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/connection.rs:2:5
  |
2 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/interceptor.rs:2:5
  |
2 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message/set.rs:2:5
  |
2 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message/stream.rs:3:5
  |
3 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:5:5
  |
5 | use crate::model::node::nodes::dsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/internal.rs:6:5
  |
6 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:2:5
  |
2 | use crate::core::message::presentation::PresentationMessage;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:6:5
  |
6 | use crate::model::sensor::sensors::dsl::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/presentation.rs:7:5
  |
7 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/set.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/set.rs:2:5
  |
2 | use crate::core::message::set::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:1:5
  |
1 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:2:5
  |
2 | use crate::core::message::stream::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:6:5
  |
6 | use crate::model::firmware::firmwares::dsl::firmwares;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:7:5
  |
7 | use crate::model::firmware::Firmware;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:8:5
  |
8 | use crate::model::node::nodes::dsl::*;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/message_handler/stream.rs:9:5
  |
9 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/server.rs:5:5
  |
5 | use crate::channel;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/core/server.rs:6:5
  |
6 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/firmware.rs:8:5
  |
8 | use crate::model;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/firmware.rs:9:5
  |
9 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/firmware.rs:10:5
   |
10 | use crate::model::firmware::Firmware;
   |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/firmware.rs:34:13
   |
34 |         use crate::model::firmware::firmwares::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:145:9
    |
145 |     use crate::model::node::nodes::dsl::*;
    |         ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:193:13
    |
193 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:219:13
    |
219 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/firmware.rs:259:13
    |
259 |         use crate::model::firmware::firmwares::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/node.rs:8:5
  |
8 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/node.rs:9:5
  |
9 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/node.rs:52:13
   |
52 |         use crate::model::node::nodes::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/node.rs:79:13
   |
79 |         use crate::model::node::nodes::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:116:13
    |
116 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:146:13
    |
146 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
   --> src/handler/node.rs:186:13
    |
186 |         use crate::model::node::nodes::dsl::*;
    |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/sensor.rs:6:5
  |
6 | use crate::model::db::ConnDsl;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/handler/sensor.rs:7:5
  |
7 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:38:13
   |
38 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:51:13
   |
51 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/handler/sensor.rs:82:13
   |
82 |         use crate::model::sensor::sensors::dsl::*;
   |             ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/model/sensor.rs:1:5
  |
1 | use crate::core::message::presentation::PresentationType;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/model/sensor.rs:6:9
  |
6 |     use crate::core::message::presentation::PresentationTypeMapping;
  |         ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:1:5
  |
1 | use crate::channel::Sender;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:2:5
  |
2 | use crate::core::message::set::{SetMessage, SetReqType, Value};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/adapter.rs:3:5
  |
3 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:3:5
  |
3 | use crate::channel::{Receiver, Sender};
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:4:5
  |
4 | use crate::core::message::set::SetMessage;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:7:5
  |
7 | use crate::model::node::Node;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
 --> src/wot/mod.rs:8:5
  |
8 | use crate::model::sensor::Sensor;
  |     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/wot/mod.rs:51:21
   |
51 |                 use crate::model::node::nodes::dsl::*;
   |                     ^^^^^

error[E0658]: `crate` in paths is experimental (see issue #45477)
  --> src/wot/mod.rs:52:21
   |
52 |                 use crate::model::sensor::sensors::dsl::*;
   |                     ^^^^^

error: aborting due to 194 previous errors

Some errors occurred: E0405, E0412, E0425, E0432, E0433, E0658.
For more information about an error, try `rustc --explain E0405`.
error: Could not compile `myscontroller-rs`.

To learn more, run the command again with --verbose.
pi@gateway:~/MySController-rs $ 

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 12, 2018 via email

@ashokgowtham
Copy link
Collaborator

rustup default beta

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 15, 2018

I did a fresh install following these steps:

log into SSH

'sudo apt-get update'

'sudo curl https://sh.rustup.rs -sSf | sh'

select option 2 - Customize installation

you will get three questions.
a. ignore the first one
b. when asked to set a default toolchain, type "beta"
c. modify PATH variable: select "yes"

reboot

Then you have to install a few libraries:

sudo apt-get install libssl-dev
sudo apt-get install libsqlite3-dev

and then follow the install procedure mentioned here.

This results in 0 errors, but there are lots of warnings:

Compiling myscontroller-rs v0.5.7 (/home/pi/MySController-rs)
warning: cannot find type table in this scope
--> <::diesel::macros::table_body macros>:165:33
|
165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= note: #[warn(proc_macro_derive_resolution_fallback)] on by default
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type table in this scope
--> <::diesel::macros::table_body macros>:165:33
|
165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type firmware_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type firmware_version in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type name in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type blocks in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type crc in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type data in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Firmware in this scope
--> src/model/firmware.rs:23:10
|
23 | #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)]
| ^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type firmwares in this scope
--> src/model/firmware.rs:23:45
|
23 | #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Firmware in this scope
--> src/model/firmware.rs:23:45
|
23 | #[derive(Queryable, Serialize, Deserialize, Insertable, Clone)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type node_id in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type node_name in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type desired_firmware_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type desired_firmware_version in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type auto_update in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type scheduled in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Node in this scope
--> src/model/node.rs:14:10
|
14 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)]
| ^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type nodes in this scope
--> src/model/node.rs:14:45
|
14 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Node in this scope
--> src/model/node.rs:14:45
|
14 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type child_sensor_id in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type sensor_type in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type description in this scope
--> <::diesel::macros::__diesel_column macros>:5:33
|
5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name
| ^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type PresentationType in this scope
--> src/model/sensor.rs:16:10
|
16 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)]
| ^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Sensor in this scope
--> src/model/sensor.rs:16:10
|
16 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)]
| ^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type sensors in this scope
--> src/model/sensor.rs:16:45
|
16 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type Sensor in this scope
--> src/model/sensor.rs:16:45
|
16 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

warning: cannot find type PresentationType in this scope
--> src/model/sensor.rs:16:45
|
16 | #[derive(Queryable, Serialize, Deserialize, Insertable, Debug, PartialEq, Clone)]
| ^^^^^^^^^^ names from parent modules are not accessible without an explicit import
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #50504 rust-lang/rust#50504

Finished dev [unoptimized + debuginfo] target(s) in 10m 26s                                                                                                         
 Running `target/debug/myscontroller-rs`

thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', libcore/result.rs:1009:5
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at libstd/sys_common/backtrace.rs:71
at libstd/sys_common/backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
at libstd/panicking.rs:211
3: std::panicking::default_hook
at libstd/panicking.rs:227
4: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:477
5: std::panicking::continue_panic_fmt
at libstd/panicking.rs:391
6: rust_begin_unwind
at libstd/panicking.rs:326
7: core::panicking::panic_fmt
at libcore/panicking.rs:77
8: core::result::unwrap_failed
at libcore/macros.rs:26
9: <core::result::Result<T, E>>::unwrap
at libcore/result.rs:808
10: myscontroller_rs::server_configs
at src/main.rs:137
11: myscontroller_rs::main
at src/main.rs:44
12: std::rt::lang_start::{{closure}}
at libstd/rt.rs:74
13: std::panicking::try::do_call
at libstd/rt.rs:59
at libstd/panicking.rs:310
14: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:103
15: std::panic::catch_unwind
at libstd/panicking.rs:289
at libstd/panic.rs:392
16: std::rt::lang_start_internal
at libstd/rt.rs:58
17: std::rt::lang_start
at libstd/rt.rs:74
18: main
19: __libc_start_main

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 15, 2018

Ah, there is still an error there.

pi@gateway:~/MySController-rs $ rustup --version
rustup 1.14.0 (1e51b07cc 2018-10-04)

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 16, 2018

@flatsiedatsie the build is successful. While running the server, it is trying to create the sqlite db file, and the permission is denied. Try to run with sudo.

@tsathishkumar
Copy link
Owner

Or you can change the db file location in the conf.ini file to a relative location

database_url=/var/lib/myscontroller-rs/sqlite.db

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 16, 2018

Success! Well, almost.

I tried running the compiled file with sudo:

pi@gateway:~/MySController-rs/target/debug $ ls build deps examples incremental libmyscontroller_rs.d libmyscontroller_rs.rlib myscontroller-rs myscontroller-rs.d native pi@gateway:~/MySController-rs/target/debug $ pi@gateway:~/MySController-rs/target/debug $ sudo ./myscontroller-rs thread 'main' panicked at 'calledResult::unwrap()on anErrvalue: Error { line: 0, col: 0, msg: "Unable to open"conf.ini": No such file or directory (os error 2)" }', libcore/result.rs:1009:5 note: Run with RUST_BACKTRACE=1for a backtrace.

The conf.ini file does seem to exist in the debug folder, it's in the main folder.

if I copy the conf.ini file into the debug folder, then it does run! yay!

pi@gateway:~/MySController-rs/target/debug $ sudo ./myscontroller-rs INFO 2018-10-16T10:01:59Z: actix_web::server::srv: Starting 4 http workers INFO 2018-10-16T10:01:59Z: actix_web::server::srv: Starting server on http://0.0.0.0:8000 Running migration 20180416170858 Running migration 20180425200801 Running migration 20180515193701 Running migration 20180530120000 INFO 2018-10-16T10:02:00Z: myscontroller_rs: Starting proxy server INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Waiting for server connection -- 0.0.0.0:8080 ... INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Connected to -- 0.0.0.0:8080 INFO 2018-10-16T10:02:00Z: myscontroller_rs::core::connection: Server listening on -- 0.0.0.0:5003

I found this path in the service file:
/usr/local/bin/myscontroller-rs
Should I move the executive and the conf.ini file into that folder?

And should I change the conf.ini file?

`
[Gateway]
type=TCP
port=0.0.0.0:8080

[Controller]
type=TCP
port=0.0.0.0:5003
`

The naming is a little confusing to me, as they seem reversed. In MySensors the 'controller' is something like Domoticz, and the gateway is the MySensors gateway software at port 5003.

I should probably change the 0.0.0.0 into 127.0.0.1.
But what does the software expect to find at port 8080? The Mozilla software? Doesn't that run on port 80?

Perhaps "Mozilla gateway" and MySensors gateway" would be clearer names?

And when I restart, the server is still running on port 0.0.0.0. Perhaps it would be possible to also change the IP address of the server in the conf.ini?

And will this server then just appear magically inside the Mozilla gateway add-ons list?

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 16, 2018

@flatsiedatsie very good progress. I will update the document to make it easier for others.

Regarding the naming:

As I mentioned in the readme, I started it as a proxy between MySGateway and an actual Controller (Homeassistant in my case). So, the names in conf.ini refers to them.

If you don't have a controller to which you want to forward the requests to, that's fine, you don't need to worry about that config.

Gateway usually listens at 5003, so configure that.

Regarding the Mozilla gateway - you don't need to configure that in conf.ini.

You would need to add the url of this controller, which starts on port 8888 in Mozilla IoT Gateway.

TL;DR:

Ignore [Controller] config (change port to unused one), configure [Gateway] properly and you are good to go.

Open Mozilla Gateway UI and add things adapter, and configure the url

Sometimes, you need to manually add things with URLs as below,

http://localhost:8888/0
http://localhost:8888/1

etc

@tsathishkumar
Copy link
Owner

I found this path in the service file:
/usr/local/bin/myscontroller-rs

If you install the server through apt-get it would install in that location. I think you can run it from the repo itself for now. I'm still fighting with docker images to build for armv7hf. Once I get that working, I can build debian package, which you can directly install and run.

@tsathishkumar
Copy link
Owner

In Mozilla IoT Gateway follow the below steps to add Web Thing URL:

Settings -> Add-ons -> + -> Web Thing -> Configure -> http://localhost:8888

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 16, 2018

I got it working! Very cool!

However, it seemed to add one device, and then it stopped adding other new ones.

Sometimes, you need to manually add things with URLs as below,
http://localhost:8888/0
http://localhost:8888/1

I suspect I have to try that? Why is it sometimes? And would it be possible to have this be done automatically?

@tsathishkumar
Copy link
Owner

Do you get all the thing listed when you click add?

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 17, 2018

I got two child-items when I clicked add (temperature sensor and light sensor). They were both part of the same device (smart alarm clock).

Interestingly those sensor-children each have an on-off switch attached to them. I suspect this is a function of the gateway (which would be great, very privacy friendly to be able to switch of the collection of data for a while this way).

After this first scan it's definitely not adding other devices automatically. I tried adding a very simple switch device, but 'scanning for new devices' doesn't do anything. I tried powering it on before and during the 'scanning' phase.

If I try 'add by url' on the 'add device' page, and then enter either of these I get "Web thing not found":
http://localhost:8888/2
http://localhost:8888/1
http://localhost:8888/0
http://localhost:8888

Is there a place I can check the logs?

// the sensors also aren't showing any data. I tried turning their switches to on in the interface, but there was no difference.

I am funnily enough able to manually change the sensor value by dragging the slider. This could be another great privacy feature: temporarily override the actual data with fake data. "No mom, we really didn't throw a house party, check the logs!".

Clicking on the 'logs' button in the interface also doesn't show anything. This must be a gateway issue. Or perhaps there's just no data to show yet. Although I did drag the sensor to a manual position. Odd.

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 17, 2018 via email

@flatsiedatsie
Copy link
Contributor Author

Great!

Any idea why I don't see any data on the sensor show up?

By the way, I'd be happy to buy you a Raspberry Pi if that would help with development.

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 17, 2018

Any idea why I don't see any data on the sensor show up?

I don't quite get the question. You mean the sensor added to Mozilla Gateway via myscontroller-rs is not updated with latest data? If this is the case, could you check the logs of myscontroller-rs to see if you are receiving data from sensor?

By the way, I'd be happy to buy you a Raspberry Pi if that would help with development.

Thanks for the offer, we have a few of them in our office. It's just that I'm working in a remote place this week and don't have pi with me. :) and since we are running the server on a linux box, so didn't face all these issues. Getting feedback from you helps a lot. Thanks again.

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 17, 2018

You mean the sensor added to Mozilla Gateway via myscontroller-rs is not updated with latest data?

Yes, that's what I mean.

Where is the myscontroller-rs log located?

And my pleasure :-)

@tsathishkumar
Copy link
Owner

tsathishkumar commented Oct 17, 2018

By default, the logs are written to the console. You might want to redirect the output to a log file and run the server in background.

./target/debug/myscontroller-rs > /var/log/myscontroller-rs.log &

And use the below steps to build in release mode and run.

cargo build --release
./target/release/myscontroller-rs > /var/log/myscontroller-rs.log &

@flatsiedatsie
Copy link
Contributor Author

flatsiedatsie commented Oct 17, 2018

You mean the browser console?

I'm not quite sure what you mean by running the server in the background. Doesn't myscontroller-rs already run in the background continuously? (I've set it up as a service)

Some more questions:

Will/could myscontroller-rs run on Arm6 too? Specifically the Raspberry Pi Zero W?

Does myscontroller-rs support MySensors goodies like..

  • requestTime() - getting the time from the controller. My smart alarm clock uses this for example.
  • getControllerConfig().isMetric. The temperature sensor uses this to calculate Celcius or Fahrenheit.
  • requesting/passing along V_TEXT updates that happen on the server. (Come to think of it, I'm not even sure Mozilla Gateway supports text based sensors). My smart door lock uses this to get the latest password from the controller. I can then open the door with an SMS by checking if the SMS content matches the password set in the controller.
  • sendHeartbeat() - Heartbeat signals to tell the controller the smart lock is still working, even though the status of the door (open/closed) may not change in days.

@tsathishkumar
Copy link
Owner

Wow, that is quite a bunch of use cases there :)

None of them are being supported as of now. But should be easy to add support for first 2. I'll add them to my immediate TODO list.

Regarding 3rd requirement, I'll check the MySensors protocol, and see how we can implement that.

Will/could myscontroller-rs run on Arm6 too? Specifically the Raspberry Pi Zero W?

This should be possible, as the rust code can be cross compiled to arm6 as well as arm7.

You mean the browser console?

Nope, I was talking about the service log only. So if you have exported as service, then you should be able to see it in the journalctl I think.

@tsathishkumar
Copy link
Owner

I have created issues #8 #9 #10 and #11 to track the feature requests. Closing this issue for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants