Universelle Hardware-Basis für 868MHz Funksensoren und Aktoren

Begonnen von papa, 05 Juli 2017, 22:12:42

Vorheriges Thema - Nächstes Thema

PeMue

Zitat von: papa am 26 Juli 2019, 09:43:04
Dafür gibt es bisher keine Unterstützung in FHEM.
Ich vermute für das e-Paper Display HB-Dis-EP-42BW verhält es sich ähnlich, oder?

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

papa

#556
Zitat von: PeMue am 26 Juli 2019, 15:42:49
Ich vermute für das e-Paper Display HB-Dis-EP-42BW verhält es sich ähnlich, oder?
Nein ebenfalls nicht. Keine Ahnung, ob das prinzipiell in FHEM geht. Jerome verwendet da ein Multiframe-Command. Ich habe so ein Teil auch nicht.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

papa

Zitat von: Beetle2003 am 26 Juli 2019, 12:31:27
Hallo papa,

Danke für die Info.
Hast du geplant dieses zu integrieren?

Ich habe derzeit eine eigenbaulösung die einige schwächen hat.
Schwer zu sagen. Jerome macht da komische Sachen. Kannst Du eventuell auf das HB-IBUT-8 umschwenken. Es gibt auch nen Reader, der RFID als 1Wire iButton in ein System einbindet.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Tom Major

#558
Zitat von: PeMue am 26 Juli 2019, 15:42:49
Ich vermute für das e-Paper Display HB-Dis-EP-42BW verhält es sich ähnlich, oder?
Zitat von: papa am 26 Juli 2019, 21:19:55
Nein ebenfalls nicht. Keine Ahnung, ob das prinzipiell in FHEM geht. Jerome verwendet da ein Multiframe-Command. Ich habe so ein Teil auch nicht.

Jerome hat sich auch am vorhandene HM-Dis-EP-WM55 orientiert denk ich und nicht überall das Rad neu erfunden, die 2 Bilder unten zeigen mal beispielhaft wo Sachen bei RaspberryMatic dazugekommen sind um das HB-Dis-EP-42BW zu unterstützen, es sind noch mehr Stellen.
Ich hatte mich vor einiger Zeit damit beschäftigt weil ich einen Repack des HB-Dis-EP-42BW Anteils in ein separates AddOn gemacht habe.
Aus meiner Sicht könnte das für FHEM nur jemand mit viel know-how des FHEM-Homematic Codes/Schnittstellen usw. leisten, vorzugsweise die Entwickler des HM Moduls, aber technisch machbar wäre es imho.

Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

jp112sdl

Zitat von: Tom Major am 27 Juli 2019, 00:15:54
Jerome hat sich auch am vorhandene HM-Dis-EP-WM55 orientiert denk ich und nicht überall das Rad neu erfunden
Genau.
Eigentlich sind es nur 5 Zeilen und einige Icons mehr sowie insgesamt 10 Tasterkanäle (1-10), Kanal 11 ist das Display.
Das HM-Dis-EP-WM55 hat glaub ich noch nen Buzzer... den hat das HB-Dis-EP-42BW nicht.

Beetle2003

Zitat von: jp112sdl am 28 Juli 2019, 20:57:57
Genau.
Eigentlich sind es nur 5 Zeilen und einige Icons mehr sowie insgesamt 10 Tasterkanäle (1-10), Kanal 11 ist das Display.
Das HM-Dis-EP-WM55 hat glaub ich noch nen Buzzer... den hat das HB-Dis-EP-42BW nicht.

Hallo,
Kannst mir sagen wie ich das HB-UNI-Sen-RFID- unter Fhem zum funktionieren bringe?

Danke

jp112sdl

Zitat von: Beetle2003 am 28 Juli 2019, 21:36:39
Kannst mir sagen wie ich das HB-UNI-Sen-RFID- unter Fhem zum funktionieren bringe?
Nein, da ich nur mit CCU arbeite.

FEHMPiDi

#562
Hallo,

ich brauche mal wieder Hilfe wegen der Spannungsmessung.
Ich hatte vor einiger Zeit ein paar TH-Sensoren auf der Universalhardwarebasis mit 2xAAA und Step-up aufgebaut, und die UNI-Sensor1 Firmware verwendet.
Ich möchte wie damals (Antwort #499) die Batteriespannung direkt an der Batterie messen und nicht hinter dem Step-up.
Die Lösung von damals hatte auch gut funktioniert. Mit der neueren Firmware gibt es ja aber die Möglichkeit die Batteriespannung auch an der Batterie zu messen.

//---------------------------------------------------------
// Optionen für Batteriespannungsmessung, siehe README
//------------
// 1) Standard: tmBattery, UBatt = Betriebsspannung AVR
//#define BAT_SENSOR tmBattery
//------------
// 2) für StepUp/StepDown: tmBatteryResDiv, sense pin A0, activation pin D9, Faktor = Rges/Rlow*1000, z.B. 470k/100k, Faktor 570k/100k*1000 = 5700
#define BAT_SENSOR tmBatteryResDiv<A3, 7, 5700>
//------------
// 3) Echte Batteriespannungsmessung unter Last, siehe README und Thema "Babbling Idiot Protection"
// tmBatteryLoad: sense pin A0, activation pin D9, Faktor = Rges/Rlow*1000, z.B. 10/30 Ohm, Faktor 40/10*1000 = 4000, 200ms Belastung vor Messung
//#define BAT_SENSOR tmBatteryLoad<A0, 9, 4000, 200>


A3 und 7 habe ich auf die Universalhardware angepasst. Dort wird ja zwischen A3 und D7 gemessen.
Mein Problem ist nun aber das der Sensor mit diesen Einstellungen nicht mehr "bootet". Er hängt sich irgendwo auf. Die rote LED leuchtet durchgehend und ansonsten passiert nichts. Wenn ich die Einstellungen wieder auf den Standard zurücksetzet und die Option1 als Batteriemessmethode verwende funktioniert wieder alles.
Hat jemand eine Idee woran das liegen kann?

Edit 21:01:

Jetzt sitze ich seit Stunden an diesem Problem und kaum schreibe ich diesen Beitrag finde ich selber die Lösung.
Ich verstehe es zwar nicht ganz was dort passiert aber evtl. kann mir das ja jemand erklären.
In der Datei tmBattery.h steht folgendes:

private:
    virtual uint16_t voltage()
    {
        // setup reference and input each time, just in case other SW modules have changed this
        ADMUX &= ~(ADCMUX_REFMASK | ADCMUX_ADCMASK);
        ADMUX |= ADCMUX_REF_VBG;                 // select bandgap as reference
        ADMUX |= ((SENSPIN - PIN_A0) & 0x0F);    // select SensePin as input

        pinMode(ACTIVATIONPIN, OUTPUT);
        digitalWrite(ACTIVATIONPIN, LOW);         // enable resistor divider
        uint16_t adc = tmBattery::measure(50);    // load CVref 100nF, 5*Tau = 25ms
        pinMode(ACTIVATIONPIN, INPUT);            // disable resistor divider

        if (adc) {
            // read SensePin against Bandgap:
            // ADC = Vin * 1024 / Vref -> Vin = Vref * ADC / 1024 (* resistor factor)
            uint32_t vbat = 11UL * adc * FACTOR / 1024 / 10;
            DPRINT(F("tmBatteryResDiv Voltage: "));
            DDECLN(vbat);
            return (uint16_t)vbat;
        } else {
            DPRINT(F("tmBatteryResDiv Error"));
            return 0;
        }
    }
};


Jetzt habe ich folgendes geändert ADMUX |= ((SENSPIN - PIN_A0) & 0x0F) zu ADMUX |= ((SENSPIN - PIN_A3) & 0x0F) und siehe da, es geht.

Danke im Voraus
FHEM5.7@RaspPi.3|NanoCUL868-HM|NanoCUL868-Max|SDuino|DS18B20|1xHM-Sen-MDIR-WM55|   
2xHM-LC-Sw1PBU-FM|HM-LC-SW4-DR|I2C_MCP23017|2xMAX-ShutterContact|11xHM-LC-Bl1PBU-FM|CTW600|VCONTROL|1xHM-Sen-MDIR-O|2xMilight

Tom Major

Hmm, ist heute zu spät um das Problem voll zu verstehen.
Hast du denn auch wirklich A3 geschrieben
#define BAT_SENSOR tmBatteryLoad<A3, 7, ...

Und die Zeile
ADMUX |= ((SENSPIN - PIN_A0) & 0x0F);    // select SensePin as input

sieht auch Monate später immer noch korrekt für mich aus.
Wenn das SENSPIN A3 ist ist die Differenz 3 und die muss ins ADMUX für ADC3, siehe datasheet.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

FEHMPiDi

Hallo,

Ja, ich habe wirklich A3 geschrieben. Da ist nichts zu machen. Sobald ich die Batterie einlege leuchtet sofort die LED und geht auch nicht mehr aus.
Wenn Deine Erklärung stimmt müsste er ja jetzt auf pin A0 messen, da die Differenz zwischen Sensepin und A3 0 ist mit meiner geänderten Zeile. Ich Messe aber jetzt einen Wert von 2,13V. Ich werde mal nachmessen ob der auch stimmt.

Vielleicht kannst du dir das bei Gelegenheit mal angucken? Das es gestern zu spät war sehe ich ein :o

Danke
FHEM5.7@RaspPi.3|NanoCUL868-HM|NanoCUL868-Max|SDuino|DS18B20|1xHM-Sen-MDIR-WM55|   
2xHM-LC-Sw1PBU-FM|HM-LC-SW4-DR|I2C_MCP23017|2xMAX-ShutterContact|11xHM-LC-Bl1PBU-FM|CTW600|VCONTROL|1xHM-Sen-MDIR-O|2xMilight

Tom Major

Zitat von: FEHMPiDi am 13 August 2019, 08:25:39
Hallo,

Ja, ich habe wirklich A3 geschrieben. Da ist nichts zu machen. Sobald ich die Batterie einlege leuchtet sofort die LED und geht auch nicht mehr aus.
Wenn Deine Erklärung stimmt müsste er ja jetzt auf pin A0 messen, da die Differenz zwischen Sensepin und A3 0 ist mit meiner geänderten Zeile. Ich Messe aber jetzt einen Wert von 2,13V. Ich werde mal nachmessen ob der auch stimmt.

Vielleicht kannst du dir das bei Gelegenheit mal angucken? Das es gestern zu spät war sehe ich ein :o

Danke

ja, kann ich mal die Tage bei mir testen.

- du hast genau diese Schaltung ohne Modifikationen?
https://github.com/pa-pa/HMSensor/blob/master/HMSensor-StepUp/files/HMSensor-StepUp.pdf

- du hast im aktuellen UniSensor1 code nur diese Zeile geändert?
#define BAT_SENSOR tmBatteryResDiv<A3, 7, 5700>

- welche Sensoren sind aktiviert?
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

FEHMPiDi

Hallo,

danke schon mal im Voraus für deine Mühen.
Ja, ich habe diese Schaltung mit Step-up und dem SHT10.
Ansonsten habe ich keine Sensoren verbaut.
Anstelle des SHT10 habe ich einen SHT11, die sind aber kompatibel.

Bei mir steht momentan folgendes im Code:

//---------------------------------------------------------
// Optionen für Batteriespannungsmessung, siehe README
//------------
// 1) Standard: tmBattery, UBatt = Betriebsspannung AVR
//#define BAT_SENSOR tmBattery
//------------
// 2) für StepUp/StepDown: tmBatteryResDiv, sense pin A0, activation pin D9, Faktor = Rges/Rlow*1000, z.B. 470k/100k, Faktor 570k/100k*1000 = 5700
#define BAT_SENSOR tmBatteryResDiv<A3, 7, 5700>
//------------
// 3) Echte Batteriespannungsmessung unter Last, siehe README und Thema "Babbling Idiot Protection"
// tmBatteryLoad: sense pin A0, activation pin D9, Faktor = Rges/Rlow*1000, z.B. 10/30 Ohm, Faktor 40/10*1000 = 4000, 200ms Belastung vor Messung
//#define BAT_SENSOR tmBatteryLoad<A0, 9, 4000, 200>

//---------------------------------------------------------


FHEM5.7@RaspPi.3|NanoCUL868-HM|NanoCUL868-Max|SDuino|DS18B20|1xHM-Sen-MDIR-WM55|   
2xHM-LC-Sw1PBU-FM|HM-LC-SW4-DR|I2C_MCP23017|2xMAX-ShutterContact|11xHM-LC-Bl1PBU-FM|CTW600|VCONTROL|1xHM-Sen-MDIR-O|2xMilight

Tom Major

Zitat von: FEHMPiDi am 13 August 2019, 20:21:33
Hallo,

danke schon mal im Voraus für deine Mühen.
Ja, ich habe diese Schaltung mit Step-up und dem SHT10.
Ansonsten habe ich keine Sensoren verbaut.
Anstelle des SHT10 habe ich einen SHT11, die sind aber kompatibel.

ok, kannst du bitte vorher noch ein paar gute Fotos von deinem HW Aufbau posten. Vielleicht sieht man ja noch was so.
Habe auf die Schnelle keine HW mit AVR und CC1101 wo A3 und 7 frei ist, muss ich irgendwas improvisieren.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

FEHMPiDi

Hallo,

ja kann ich machen. Aber ich weiß nicht genau was du sehen möchtest. Außerdem ist das Teil ziemlich verbaut weil ich es in einem 3D Druck Gehäuse reinkriegen musste. Ich habe aber mal ein paar Fotos gemacht. Vielleicht siehst du da etwas.

Gruß
FHEM5.7@RaspPi.3|NanoCUL868-HM|NanoCUL868-Max|SDuino|DS18B20|1xHM-Sen-MDIR-WM55|   
2xHM-LC-Sw1PBU-FM|HM-LC-SW4-DR|I2C_MCP23017|2xMAX-ShutterContact|11xHM-LC-Bl1PBU-FM|CTW600|VCONTROL|1xHM-Sen-MDIR-O|2xMilight

Tom Major

Manchmal sieht man halt etwas im Aufbau woran es liegen könnte.
Von dem was ich sehen kann (ohne uC) sieht bei dir alles top aufgebaut und gelötet aus  :D
Ich denke ich kann deine ADC und Sensorvariante heute Abend mal kurz testen.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker