What did you build/automated today (with pictures)?

I don’t have sitemap available to check it right now, but if I remember correctly, you should be able to add item=Livingroom_Temperature to the frame itself. It might be that it is not officially supported and thus not available on all UIs, but I am pretty sure I have a item value on a custom frame with some subitems, like you have.

2 Likes

Will have a play in the next hour. Thanks

1 Like

No this is the phone app. It is the same as the sitemap for basicUI and classicUI


Don’t rush into things. Take one little project at a time. Read the docs. Understand how it works before moving on to the next one. Make back ups try things. It’s only software, you can’t really break things. If the software (rules/sitemaps…) doesn’t work, read the docs again. And again. Look in the forum. Your problem has probably been answered before.

Make time. Plan it. If you are serious about a hobby, work or any other thing you will find time.

6 Likes

Hmm, thats a tough one…
My problem is, I´m serious about most stuff, which leads to lack of time… Since I cant change time, I guess I have to change my seriousness about most stuff :laughing:

2 Likes

Hi vince dident get you … i was replying to VradattaEric Zenz-Matzl

and hi did some SVG habpaneel

and you give me docs of site map what did i miss?

1 Like

Sorry I though you were replying to @adtwomey couple of posts above

What you are looking for is:

3 Likes

thanks man !
you had me thinking i missed an entire part of the OH docs hhhh

yes this is what i was looking for ,cheers!

1 Like

Nice add on thanks guys. had to change from using groups in sitemaps but it worked at the end thank you for your help.

1 Like

Love the MK-SmartHouse title :slight_smile:

this is how i also started! thanks Matt

1 Like

Still have not changed it. Right now I trying HA out.

1 Like

I automated a lot where pictures make no sense :wink:

First, and the complexest one: in our house we have 8 Meltem ventilations with heat exchanger. I controll all of these with KNX. Automation is with the outside and average temperature values from my Novelan heatpump and the indoor temperatures from my Berker KNX sensors. In summer the ventilation runs at night to reduce the indoor temperature. In spring and autumn, when the temperatures are very different, I try to decide automatically between inside, outside and average temperature whether to cool or not to lower the inside temperature too much but still have good air quality. And all of these different in living rooms and sleeping rooms. After two years of continuous development I am very satisfied with the following at the moment.

Some other features:

  • closed roller shutters after sunset
  • disable the doorbell when the childrens are sleeping (manually)
  • switch off all lights at 2am
  • send telegram if the indoor temperature increase over 30 degrees (in case of fire)
  • vacation scene with switching lights random, reduce heating to minimum, opens/close roller shutter
  • set heatpump mode based on average outside temperature
  • integrated my Xiaomi vacuum robot, pihole adblocker, VDR (Video Disc Recorder), Novelan Heatpump, KNX, Fritzbox, Rika pellet stove

And as hardware i use KNX (MDT and Berker), two Raspberry’s, an Google Home Mini, some Sonoff and new 6 Shelly (which are very bad hardware, broke 5 devices after controlling with MQTT). And an old Nexus 7 tablet in the kitchen with Habpanel

My basic ui with own icons and Grafana:

That was only possible with that great openhab community - kudos for that!

Huaba

11 Likes

Hi @adtwomey and rest of users.

As promised i’m posting some pictures.
Heres the complete moisture sensor as it can be seen in the garden

The bottom (=the part that is inside the soil)

And finally the inside (not really “prettyfied”, I will redo it during winter :slight_smile: ):


It consists of an arduino on a breakout board, a 433MHz transmitter, a battery charging circuit, the battery and the cables which to to the top come from a solar panel. (200mm x 200mm, 5V, 500mA max)

The code for the arduino:

#include <RCSwitch.h>
#include <avr/sleep.h>
#include <avr/power.h>
#include <avr/wdt.h>

RCSwitch mySwitch = RCSwitch();

byte RFAdress = 1;
uint16_t SupplyVoltage = 0;
uint16_t SensorValue = 0;

uint32_t iWatchDogCounter = 0;
uint32_t iMaxWatchDogCycles = 8;     //8 * 8s = 64s = 1min
volatile int toggle = 1;

//unsigned long Telegram;
uint32_t Telegram;


ISR(WDT_vect)
/* Watchdog imer Interrupt Service Routine */
{
  if(toggle == 0)
  { 
    toggle = 1; 
    iWatchDogCounter++;   //increase the counter. +1 means +8s;
  }
  //else
  //  { Serial.println("WDT Overrun Error!"); }
}

long readVcc() 
{ 
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
     ADMUX = _BV(MUX5) | _BV(MUX0) ;
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  
 
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA,ADSC)); // measuring
 
  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both
 
  long result = (high<<8) | low;
 
  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
}


uint16_t BatteryLevel()
{
  long Battery = readVcc();
  //return uint32_t ((Battery*1.0 / iMaxBatteryLevel_mV*1.0)*100);
  return uint16_t(Battery);
}



void setup() {
  // put your setup code here, to run once:
  pinMode(11, OUTPUT);  //Data output for 433MHz
  pinMode(12, OUTPUT);  //VCC Output for RF and Analog Sensor
  mySwitch.enableTransmit(11);
  mySwitch.setRepeatTransmit(4);
  Serial.begin(9600);
  Serial.println("Board has been reset");

  /* Setup des Watchdog Timers */
  MCUSR &= ~(1<<WDRF);             /* WDT reset flag loeschen */
  WDTCSR |= (1<<WDCE) | (1<<WDE);  /* WDCE setzen, Zugriff auf Presclaler etc. */
  WDTCSR = 1<<WDP0 | 1<<WDP3;      /* Prescaler auf 8.0 s */
  WDTCSR |= 1<<WDIE;               /* WDT Interrupt freigeben */

  delay(100);
  /* Send data after booting up */
  SendData();
}

void SendData()
{
  //first, power up the sensors:
  digitalWrite(12, HIGH);
  delay(50);
  
  SensorValue = GetSensorData();
  SupplyVoltage = BatteryLevel();
  /* Supply Voltage goas at maximum to 5000 which would be 5000mV, so we modulate the node ID into it 15000 --> the first three bits of the telegram are the ID, */
  Telegram = (uint32_t)SupplyVoltage + ((uint32_t)RFAdress << 13) + ((uint32_t)SensorValue << 16);

  //Telegram = RFAdress + ((uint32_t)SupplyVoltage << 8) + ((uint32_t)SensorValue << 16);
      
  //sometimes it is needed to send the data multiple times
  mySwitch.send(Telegram,32); //was 24
  delay(20);
  mySwitch.send(Telegram,32); //was 24
  delay(20);
  mySwitch.send(Telegram,32); //was 24
  delay(20);
  
  Serial.println(Telegram);
  Serial.println(SupplyVoltage);
  Serial.println(SensorValue);
  digitalWrite(12, LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
   
  if(toggle)
  {
    //delay(100);
    toggle = 0;

    if(iWatchDogCounter >=  iMaxWatchDogCycles)
    {
      iWatchDogCounter = 0;
      /*SensorValue=GetSensorData();
      BatteryPercent=BatteryLevel();*/
      SendData();
    }
   
    delay(50);
    sleep();
  }
}

void sleep(void)  
{  
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);  
  sleep_enable();  
  sleep_mode();  
  /** Das Programm läuft ab hier nach dem Aufwachen weiter. **/  
  /** Es wird immer zuerst der Schlafmodus disabled.        **/  
  sleep_disable();   
  delay(100);
  power_all_enable();
}  

uint16_t GetSensorData()
{
  return analogRead(1);
}


Basically it uses the watchdog timer to wake up the arduino from deep sleep.
Since the maximum value for the watchdog timer is 82, i’m looping this and once i’m exceeding the maximum watchdog cycles (in this code is approx 1minute), i take readings from the sensor and the supply voltage and send the readings modulated into a 32bit value over 433MHz.
In order to avoid problems with 433MHz, i’m sending those telegrams 5times.

I thought that was a good idea but it seems to crash my ESP32 every now and then…something that I will revise during winter as well.
But the sensor itself was running the whole summer without any issues.

Each telegram has also a unique ID, this shall be used in the future to have more of those sensors :slight_smile:

3 Likes

Nicely

1 Like

I noticed a lot of people going a diy route with electronics. I am amateur in electronics (although ironically, I finished school for it), but I do some MySensors/artuidno stuff, and I built a helping hand to ease the process.

Filter has a active coal filter behind it, and light is dimmable by touch.
It has a built in power for light and fan, from glued old powerbank

Helping hand tool is often looking better then my projects but well…

9 Likes

@mjcumming
Wow the result must be a mess. This is a reminder for us all to think about the corner cases especially when it comes to integration with critical devices. Could you share what valve controller are you using, and does it works reliably?

Thanks,

1 Like

I purposefully used a normally open valve. The security was setup to turn off the water valve when armed in vacation mode. I wanted a NO valve in case there was a problem with the security system (ie a prolonged power failure) and I wasn’t around to help manually turn the valve on.

Hey Huaba,

wow, you seem to have a lot of integration in OH. I like that! You may share information about the functionality and rules behind it :slight_smile:

Cheers

I have basically the following systems:
Homematic
Philips Hue
iCloud (iPhone GPS…)
Fritzbox
Samsung TV

OH is running on a Raspberry Pi.

With these components I control the temperature when we’re at home and absent, the lights, and the rollershutters will follow soon.

Here is how my basic UI looks like:

And in our kitchen I have an old iPad 2 running HABpanel:

After seeing here some pictures of HABpanel, I think I might change my colors or something, but that’s not the first priority :wink:

Also, I created the house in 3D using Sweet Home 3D. Unfortunately it doesn’t run on the old iPad, but does very well on a computer :slight_smile:
It’s integrated in HABpanel.

Here’s how it can be done: (Proof-of-concept) Interactive WebGL view with HABPanel & Sweet Home 3D!

I have some things left to do, but after more than a year of building rules and UIs I’m pretty happy with it so far :slight_smile:

Cheers,
Viktor

8 Likes

Hey Bartus.
i use nodemcu boards for most of my products. I currently have one running my verical blinds using servos, and hall effect sensors.

I get random restarts, usually every couple of minutes. some times it will go hours without a restart. I have worked around this in software to update the location of the blinds when it restarts, but I was wondering if you knew what would cause this. You mentioned a shottky diode between RST and D0.

I also use GPIO 0,2,15 as i dont have enough IO pins to not use them, But this is only an issue when the board starts. Should cause issues during running.

Ive read about watchdog timers can cause issues and restarts. I dont have any delays in my code. My loop just continues and runs if there is a mqtt message.

Any info would be brilliant if you have it.

Nice plan Vradatta, what elements / sensors / actors you are using for the lights and fans? Thx