anchor.diff:  % <em>Command code: `a5h'</em>
   -spec write_byte(integer()) -> ok.
   write_byte(Byte) ->
  -    assert_transaction(),
  -    grisp_i2c:msgs([?DS2482_I2C_ADR, {write, <<?CMD_1WWB, Byte>>}]),
  +    Bus = assert_transaction(),
  +    grisp_ni2c:transfer(Bus, [{write, ?DS2482_I2C_ADR, 0, <<?CMD_1WWB, Byte>>}]),
       timer:sleep(1).
   
   % @doc Read one data byte from the 1-Wire line.
  
positive.code: 
  -define(TRANSACTION_TIMEOUT, 12000).
  -define(TRANSACTION_KEY, '$onewire_transaction_token').
  -define(TRANSACTION_TOKEN, 4435846174457203). % Random token
  
  %--- API -----------------------------------------------------------------------
  
  
negative.code: write_config(Conf) when is_list(Conf) ->
      write_config(lists:foldl(fun(X, A) -> A bor map_config(X) end, 0, Conf));
  write_config(Conf) when is_integer(Conf) ->
      Bus = assert_transaction(),
      Val = (bnot(Conf) bsl 4) bor Conf,
      Messages = [
          {write, ?DS2482_I2C_ADR, 0, <<?CMD_WCFG, Val>>},
          {read, ?DS2482_I2C_ADR, ?I2C_M_NO_RD_ACK, 1}
      ],
      case grisp_ni2c:transfer(Bus, Messages) of
          [ok, <<Conf:8>>] ->
              ok;
          Any -> error({read_back_config, Any, Val})
      end.
  