jakubonty / weather_station_mqtt

5 stars 7 forks source link

Repository structure for master is not compliant?? #7

Open maijo366 opened 2 years ago

maijo366 commented 2 years ago

Hi, I'm trying to use this weather_station_mqtt but i'm failed. I can´t install the repository in Hacs. I want to install it by self, copy the Folders and files into the config/custom Components Folder. But it doesn´t work. I become this error: Repository structure for master is not compliant

Home Assistant 2022.2.3

Installationstyp | Home Assistant Supervised Entwicklung | false Supervisor | true Docker | true Benutzer | root Virtuelle Umgebung | false Python-Version | 3.9.7 Betriebssystemfamilie | Linux Betriebssystem-Version | 5.10.0-11-arm64 CPU-Architektur | aarch64

Host-Betriebssystem | Debian GNU/Linux 11 (bullseye) Update-Channel | stable Supervisor-Version | supervisor-2022.01.1 Docker-Version | 20.10.12 Speicherplatz gesamt | 455.9 GB Speicherplatz genutzt | 7.2 GB Gesund | true Unterstützt | true Supervisor-API | ok Versions-API | ok
jakubonty commented 2 years ago

Hello, please, look here: https://community.home-assistant.io/t/repostitory-structure-for-is-not-compliant/295074 , you probably mix integration/addon, this is addon, you do not need HACS for it.

Just copy it into addons folder and then install the addon, you can install addons in supervisor.

maijo366 commented 2 years ago

Hello, please, look here: https://community.home-assistant.io/t/repostitory-structure-for-is-not-compliant/295074 , you probably mix integration/addon, this is addon, you do not need HACS for it.

Just copy it into addons folder and then install the addon, you can install addons in supervisor.

Oooh thanks, I could now install the addon with samba.

The transmission of mobile alerts also works, but I have the entry in the log of the sensor: MA 10120 and I don't get any data.

error ReferenceError: Sensor_ID01 is not defined

at eval (eval at Sensor.CreateSensorObject (/sensors.js:27:14), <anonymous>:1:1)
at Sensor.CreateSensorObject (/sensors.js:27:14)
at processSensorData (/mobilealerts.js:183:24)
at /mobilealerts.js:244:47
at processSensorDataByServer (/gatewayProxyServer.js:71:7)
at /gatewayProxyServer.js:111:9
at invokeCallback (/node_modules/raw-body/index.js:224:16)
at done (/node_modules/raw-body/index.js:213:7)
at IncomingMessage.onEnd (/node_modules/raw-body/index.js:273:7)
at IncomingMessage.emit (events.js:412:35)

undefined MobileAlerts/011e1d955f45/json {"id":"011e1d955f45","t":"2022-02-10T13:15:35.000Z","offline":false}

The other sensors are working well.

jakubonty commented 2 years ago

You will have to add a new sensor, look to the sensors.js and try to add your sensor there. I also had to add my sensor, I would help you, but maybe easiest would be, if you try. Copy one of the sensors and update it's name, so it matches yours and try to change the generateJSON method. It could match some other sensor. Or if you are able to send me the data from sensor, I could do it.

maijo366 commented 2 years ago

You will have to add a new sensor, look to the sensors.js and try to add your sensor there. I also had to add my sensor, I would help you, but maybe easiest would be, if you try. Copy one of the sensors and update it's name, so it matches yours and try to change the generateJSON method. It could match some other sensor. Or if you are able to send me the data from sensor, I could do it.

I added the sensor in sensors but there are no data. i have the info in the AddOn MQTT Weather Station Log: error ReferenceError: Sensor_ID01 is not defined at eval (eval at Sensor.CreateSensorObject (/sensors.js:27:14), :1:1) at Sensor.CreateSensorObject (/sensors.js:27:14) at processSensorData (/mobilealerts.js:183:24) at /mobilealerts.js:244:47 at processSensorDataByServer (/gatewayProxyServer.js:71:7) at /gatewayProxyServer.js:111:9 at invokeCallback (/node_modules/raw-body/index.js:224:16) at done (/node_modules/raw-body/index.js:213:7) at IncomingMessage.onEnd (/node_modules/raw-body/index.js:273:7) at IncomingMessage.emit (events.js:412:35) undefined MobileAlerts/011e1d955f45/json {"id":"011e1d955f45","t":"2022-02-16T13:38:40.000Z","offline":false}

jakubonty commented 2 years ago

try to add this and then restart the plugin:

// ID01: Pro Temperature/Humidity/Ext.Temperature sensor (MS10320PRO)
function Sensor_ID01() {}
util.inherits(Sensor_ID01, SensorBase);
Sensor_ID01.prototype.bufferSize = function() {
  return 8;
}
Sensor_ID01.prototype.transmitInterval = function() {
  return 3.5;
}
Sensor_ID01.prototype.generateJSON = function(buffer) {
  console.log("SENSOR DATA: " + buffer);
  return { 'temperature': [ ],
       'temperatureExt': [ ],
       'humidity': [ ] }
}
Sensor_ID01.prototype.debugString = function() {
  return ''
}

and send me the log output

jakubonty commented 2 years ago

or try this, this one should be better, maybe working:

// ID01: Temperature
function Sensor_ID01() {}
util.inherits(Sensor_ID01, SensorBase);
Sensor_ID01.prototype.bufferSize = function() {
  return 4;
}
Sensor_ID01.prototype.transmitInterval = function() {
  return 7;
}
Sensor_ID01.prototype.generateJSON = function(buffer) {
  console.log("SENSOR DATA: " + buffer);
  return { 'temperature': [
                          this.convertTemperature(buffer.readUInt16BE(0))
                        , this.convertTemperature(buffer.readUInt16BE(2))],
        };
}
Sensor_ID01.prototype.debugString = function() {
  return this.temperaturAsString(this.json.temperature[0])
}
jakubonty commented 2 years ago

add it to file maaserver/sensors.js

jakubonty commented 2 years ago

or this:

// ID01: Temperature
function Sensor_ID01() {}
util.inherits(Sensor_ID01, SensorBase);
Sensor_ID01.prototype.bufferSize = function() {
  return 2;
}
Sensor_ID01.prototype.transmitInterval = function() {
  return 7;
}
Sensor_ID01.prototype.generateJSON = function(buffer) {
  console.log("SENSOR DATA: " + buffer);
  return { 'temperature': [
                          this.convertTemperature(buffer.readUInt16BE(0))],
        };
}
Sensor_ID01.prototype.debugString = function() {
  return this.temperaturAsString(this.json.temperature[0])
}
maijo366 commented 2 years ago

hello, i try to add all of your versions to the maserver/sensors.js. but all are not working. i become this error in the log.

error ReferenceError: Sensor_ID01 is not defined

at eval (eval at Sensor.CreateSensorObject (/sensors.js:27:14), <anonymous>:1:1)
at Sensor.CreateSensorObject (/sensors.js:27:14)
at processSensorData (/mobilealerts.js:183:24)
at /mobilealerts.js:244:47
at processSensorDataByServer (/gatewayProxyServer.js:71:7)
at /gatewayProxyServer.js:111:9
at invokeCallback (/node_modules/raw-body/index.js:224:16)
at done (/node_modules/raw-body/index.js:213:7)
at IncomingMessage.onEnd (/node_modules/raw-body/index.js:273:7)
at IncomingMessage.emit (events.js:412:35)

undefined MobileAlerts/011e1d955f45/json {"id":"011e1d955f45","t":"2022-02-25T11:52:07.000Z","offline":false}

please help. thanks a lot

maijo366 commented 2 years ago

Hello, the sensor is now recognized. However, how can I display the second value (cable sensor).

undefined MobileAlerts/011e1d955f45/json {"temperature":[2.1,### 7.2],"temperatureExt":[2.1,### 7.2],"id":"011e1d955f45","t":"2022-03-07T07:31:52.000Z","offline":false}

i added that to (sensors.yaml):

what do i need to add to show the external sensor

thanks

jakubonty commented 2 years ago

Hello, if you just need to add it from the mqtt message, you can add a new senzor like this:

platform: mqtt name: "Schwimmbad Ext" state_topic: "MobileAlerts/011e1d955f45/json" unit_of_measurement: '°C' value_template: "{{value_json.temperatureExt[0]}}"

maijo366 commented 2 years ago

Thanks a lot, the issue was on the maserver/sensors.js file. now it is ok.